Bonjour,

j'ai une relation OneToOne entre 2 entités via une table d'association :

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
@Entity
@Table(name="table1")	
public class Table1 {
 
	@Id @GeneratedValue
	private int id;
 
	@Column(name="colTable1", nullable=false) 
	private String colTable1;
 
	@OneToOne(cascade=CascadeType.ALL, optional=false) 
        @JoinTable(name="associationtable",	
        joinColumns = @JoinColumn(name="idTable1"), 
        inverseJoinColumns = @JoinColumn(name="idTable2")
	private Table2 table2;
 
...
 
}

et

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
@Entity
@Table(name="table2")	
public class Table2 {
 
	@Id @GeneratedValue
	private int id;
 
	@Column(name="colTable2", nullable=false)
	private String colTable2;
 
	@OneToOne(cascade=CascadeType.ALL, optional=false) 
        @JoinTable(name="associationtable",	
        joinColumns = @JoinColumn(name="idTable2"), 
        inverseJoinColumns = @JoinColumn(name="idTable1")
	private Table1 table1;
 
...
 
}

Je voudrais mettre au niveau hibernate une contrainte qui fasse que la relation OneToOne soit strict : c'est à dire ne plus avoir de possibilité d'enregistrer du zero-or-one <> zero-or-one quand on svgd table1 ou table2.

Comment faire ?
Merci.