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:
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;
	}
        //....
}
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
 
@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;
	}
       //....
}
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
 
@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;
	}
      //....
}
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é.

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.