Bonjour,
je débute avec JPA et j'ai actuellement un petit soucis de mise à jour sur mes entités.
J'ai deux classes, une classe Utilisateur et une classe Profils :
Si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 class Utilisateur{ @ManyToMany(cascade = {CascadeType.ALL }) @JoinTable( name="utilisateur_profil" , joinColumns={ @JoinColumn(name="id_utilisateur", nullable=false) } , inverseJoinColumns={ @JoinColumn(name="id_profil", nullable=false) } ) private Set<Profil> profils; ................. } class Profil{ @ManyToMany(cascade = {CascadeType.ALL }) private Set<Utilisateur> utilisateurs; ......... }
J'ai bien en base le profil avec une valeur modifiée, par contre, si je refais un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Utilisateur u = UtilisateurDAO.getUtilisateur(...); Profil p = u.getProfils(1); Profil newP = ProfilDAO.getProfile(p.getID()); newP.setValue("ma nouvelle valeur"); ProfilDAO.update(newP);Le profil en question n'est pas changé. Il faut que je refasse un appel au DAO de Utilisateur pour répercuter les modifications.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Profil p = u.getProfils(1);
Est-ce possible de maintenir une cohérence entre la base et tous les objets instanciés de façon automatique avec JPA ?
Pour info, j'utilise eclipseLink comme implémentation de JPA et ma table faisant le lien entre utilisateurs et profils est nommée "utilisateur_profil".
Merci d'avance.
Partager