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:
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 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; }
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 ?
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; }
Merci.
Bouba
Partager