probleme mapping ManyToMany
Bonjour à tous .
J'ai 2 tables archi et forme et la table_relation: archi_forme.
j'ai une relation oneToMany entre les 2.
en concret:
archi:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| @Entity
@Table(name = "archi", catalog = "test")
public class Archi implements java.io.Serializable {
private static final long serialVersionUID = 7170259565513611236L;
private Integer id;
private String numA;
private String nom;
private boolean enabled;
private Set<Forme> formes;
public Sfd() {}
public Sfd(String numA, String nom, ) {
this.numA = numA;
this.nom = nom;
this.enabled = true;
this.formes=new HashSet<Forme>();
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {return this.id;}
public void setId(Integer id) { this.id = id;}
@Column(name = "numA", nullable = false, length = 20)
public String getNumA() {return this.numA; }
public void setNumA(String numA) { this.numA = numA;}
@Column(name = "nom", nullable = false, length = 50)
public String getNom() {return this.nom;}
public void setNom(String nom) {this.nom = nom;}
@Column(name = "enabled", nullable = false)
public boolean isEnabled() {return this.enabled; }
public void setEnabled(boolean enabled) {this.enabled = enabled;}
/**********************************************************/
@ManyToMany(fetch = FetchType.LAZY)
@Cascade( { CascadeType.SAVE_UPDATE })
@JoinTable(name = "archi_forme", catalog = "test",
joinColumns = { @JoinColumn(name = "idArchi", nullable = false) },
inverseJoinColumns = { @JoinColumn(name = "idForme", nullable = false) })
public Set<Forme> getFormes() {return this.formes;}
public void setFormes(Set<Forme> formes) {this.formes = formes;}
public void addForme(Forme forme){
this.formes.add(forme);
}
} |
Forme
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| @Entity
@Table(name = "forme", catalog = "test")
public class Forme implements java.io.Serializable {
private static final long serialVersionUID = -6205175265164825024L;
private Integer id;
private String libelle;
private boolean enabled;
private Set<Archi> archis;
public FormeJuridique() {}
public FormeJuridique(String libelle, boolean enabled) {
this.libelle = libelle;
this.enabled = enabled;
this.archis=new HashSet<Archi>();
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "libelle", nullable = false, length = 20)
public String getLibelle() {return this.libelle;}
public void setLibelle(String libelle) {this.libelle = libelle;}
@Column(name = "enabled", nullable = false)
public boolean isEnabled() {return this.enabled;}
public void setEnabled(boolean enabled) { this.enabled = enabled;}
@ManyToMany(fetch = FetchType.LAZY,mappedBy = "forme")
@Cascade( { CascadeType.SAVE_UPDATE })
@JoinTable(name = "archi_forme", catalog = "test",
joinColumns = { @JoinColumn(name = "idForme", nullable = false) },
inverseJoinColumns = { @JoinColumn(name = "idArchi", nullable = false) })
public Set<Archi> getArchis() {
return this.archis;
}
public void setArchis(Set<Archi> archis) {
this.archis = archis;
}
} |
Archi_Forme
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| public class ArchiForme implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = -5636523418562821907L;
private Integer id;
private int idArchi;
private int idForme;
private Date dateDebut;
private Date dateFin;
private boolean enabled;
public ArchiForme() {
}
public ArchiForme(int idArchi, int idForme, Date dateDebut) {
this.idArchi= idArchi;
this.idForme = idForme;
this.dateDebut = dateDebut;
this.enabled = true;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "idArchi", nullable = false)
public int getIdArchi() {
return this.idArchi;
}
public void setIdArchi(int idArchi) {
this.idArchi = idArchi;
}
@Column(name = "idForme", nullable = false)
public int getIdForme() {
return this.idForme;
}
public void setIdForme(int idForme) {
this.idForme = idForme;
}
@Temporal(TemporalType.DATE)
@Column(name = "dateDebut", length = 10)
public Date getDateDebut() {
return this.dateDebut;
}
public void setDateDebut(Date dateDebut) {
this.dateDebut = dateDebut;
}
@Temporal(TemporalType.DATE)
@Column(name = "dateFin", length = 10)
public Date getDateFin() {
return this.dateFin;
}
public void setDateFin(Date dateFin) {
this.dateFin = dateFin;
}
@Column(name = "enabled", nullable = false)
public boolean isEnabled() {
return this.enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
} |
Quand j'execute l'orsque je met une commande de ce genre :
Code:
1 2 3 4
| FormeJ f=new Forme("Carre", true);
Archi archi=new Archi("archi1", "archi1");
archi.addForme(fj;
archiService.save(archi); |
la valeur de archi est sauve ainsi que celle de forme.
^Par contre pour la table relationarchi_forme il nya rien de sauve !!! Quelqu'un peut il m'aider pleaaase