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 : 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
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 : 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
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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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