[J2EE / Hibernate] Problèmes d'annotation
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:
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:
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:
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.