Bonjour,
Voici mon problème:
J'ai 3 entités: une classe mère BasicEntity et 2 sous classes Entity1 et Entity2, qui ont des propriétés communes, déléguées sur une "embedded entity" EmbeddableInfo
Lorsque je fais:
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 @Entity @Inheritance(strategy=InheritanceType.JOINED) public class BasicEntity { Long id; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id; } ... @Entity public class Entity1 extends BasicEntity { String prop1; EmbeddableInfo embeddedInfo; @Embedded public EmbeddableInfo getEmbeddedInfo() { return embeddedInfo; } ... @Entity public class Entity2 extends BasicEntity { String prop2; EmbeddableInfo embeddedInfo; @Embedded public EmbeddableInfo getEmbeddedInfo() { return embeddedInfo; } ... et @Embeddable public class EmbeddableInfo { String infoProp; ...
je récupère bien toutes les instances de Entity1 et Entity2
Code : Sélectionner tout - Visualiser dans une fenêtre à part List<BasicEntity> result0 = em.createQuery("Select e from BasicEntity e").getResultList();
Par contre, lorsque je fais:
je ne récupère que les instances de Entity1 (la requête générée ne permet pas de remonter les instances de Entity2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part List<BasicEntity> result1 = em.createQuery("Select e from BasicEntity e where (e.embeddedInfo.infoProp = 'eki')").getResultList();
Y a-t-il une explication ou s'agit-il d'un bug Hibernate ?
Précision: je ne souhaite pas déplacer EmbeddableInfo sur BasicEntity car je voudrai pouvoir combiner définir plusieurs "EmbeddableInfo" et ensuite les combiner au besoin sur mes objets métiers (un peu du multi-héritage)
Merci d'avance
Partager