Bonjour, j'ai un problème de mapping que je n'arrive pas à résoudre avec les EJB3 et Hibernate. Je vous explique:

J'ai la hiérarchie d'objet dans mon model qui est la suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public interface I {}
public abstract class A implements I {}
public class D extends A {}
public class E extends A {}
 
puis une autre classe B : 
public class B {
  private I monI;
}
Je souhaite mettre en persistance tout ce model, mais, j'ai un problème dans la classe B car monI est déclaré grâce à une interface. Voici ce que j'ai fais pour le moment.

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
 
public interface I {}
 
@AccessType("field")
@MappedSuperclass
public abstract class A implements I {}
 
@AccessType("field")
@Entity
@Table("D")
public class D extends A {}
 
@AccessType("field")
@Entity
@Table("E")
public class E extends A {}
 
puis une autre classe B : 
 
@AccessType("field")
@Entity
@Table("B")
public class B {
 
  @OneToOne 
  private I monI;
}
Evidemment l'annotation @OneToOne n'est pas correcte dans la classe B, mais alors comment puis-je faire pour réussir à mettre en persistance cette classe B ? Il me faudrait quelque-chose permettant de spécifier l'interface "I" en tant qu' Entity, mais quoi ?

Merci.

Bouba