Bonjour,

J'ai un souci pour établir une relation entre deux entités n'étant pas relié par une clé étrangère.

Voici le cas ci-dessous :

Table A (String id, String codeType, String idOther);
Table B (String id)
Table C (String id)

L'attribut idOther de la table A n'est pas une clé étrangère.

L'attribut idOther est égal à la valeur de l'attribut id de la table B si l'attribut codeType de la table A est égal à "B".

L'attribut idOther est égal à la valeur de l'attribut id de la table C si l'attribut codeType de la table A est égal à "C".

Avec les annotations hibernate, comment puis je établir une relation au sein de mes classes entities ?

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
 @Entity("A")
public class A {
 
   @Id
   private String id;
   private String codeType;
   private String idOther;
} 
 
@Entity("B")
public class B {
 
   @Id
   private String id;
 
   /** quelle annotation dois je appliquer pour établir la relation avec la classe A ? */
   private A a;
} 
 
@Entity("C")
public class C {
 
   @Id
   private String id;
 
   /** quelle annotation dois je appliquer pour établir la relation avec la classe A ? */
   private A a;
}
Par avance, merci de votre réponse !!!