Bonjour,
Je travaille actuellement sur un projet J2EE(hibernate et spring)/Flex. Je rencontre un problème que je n'arrive pas à résoudre.
Dans ma base j'ai:
- une table AFFAIRE reliée à plusieurs IDENTITE et à plusieurs ADRESSE
- une table IDENTITE reliée à une AFFAIRE et plusieurs ADRESSE
- une table ADRESSE reliés à une AFFAIRE.
Voici le code JAVA.
AFFAIRE:
IDENTIE
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
23
24
25
26
27
28
29
30
31 @Entity @Table(name = "affaire") public class Affaire implements java.io.Serializable { private Integer idAffaire; private Set<Identite> identites = new HashSet<Identite>(0); private Set<Adresse> adresses = new HashSet<Adresse>(0); //autres attributs @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "ID_AFFAIRE", unique = true, nullable = false) public Integer getIdAffaire() { return this.idAffaire; } @OneToMany(fetch = FetchType.EAGER, mappedBy = "affaire" , cascade = {CascadeType.PERSIST, CascadeType.MERGE}) @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) public Set<Identite> getIdentites() { return this.identites; } @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.MERGE}) @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) public Set<Adresse> getAdresses() { return this.adresses; } //.... }
ADRESSE
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
23 @Entity @Table(name = "identite") public class Identite implements java.io.Serializable { private Integer idIdentite; private Affaire affaire; private Set<Adresse> adresses = new HashSet<Adresse>(0); //autres attributs @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "AFFAIRE_ID_AFFAIRE") public Affaire getAffaire() { return this.affaire; } @OneToMany(fetch = FetchType.EAGER, mappedBy = "identite", cascade = {CascadeType.PERSIST, CascadeType.MERGE}) @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) public Set<Adresse> getAdresses() { return this.adresses; } //.... }
Je souhaite que lorsque j'ajoute/update une AFFAIRE contenant plusieurs IDENTITES qui contiennent eux même plusieurs ADRESSE, il y ait dans chaque IDENTIE et chaque ADRESSE une reference à l'AFFAIRE sauvegardé.
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 @Entity @Table(name = "adresse") public class Adresse implements java.io.Serializable { private Integer idAdresse; private Affaire affaire; //autres attributs @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "AFFAIRE_ID_AFFAIRE", nullable = true) public Affaire getAffaire() { return this.affaire; } //.... }
A l'heure actuelle tout se sauvegarde bien mais l'objet AFFAIRE dans IDENTITE et ADRESSE reste null.
pouvez vous m'aider.
Merci d'avance.
ps: Pour information je reprend le projet et je ne peux pas trop changer la base.
Partager