Salut à tous,
J'ai un épineux problème avec Toplink sur un besoin bien précis.
Je souhaite récupérer une collection d'objet A liés chacun à un objet C héritant d'une classe B avec une notion de discriminator.
Voilà mon pb :
La propriété b de a peut être null, j'ai donc besoin de gérer une jointure externe.
Pas de souci à priori avec l'utilisation d'un ExpressionBuilder et d'un getAllowingNull() mais le hic c'est que la clause générée par le discriminant
(" and C.idType = 1 ") annule la clause de jointure externe et exclu de fait les enregistrements ou idType est null.
Les entités :
***************************************
J'ai 3 entités A, B et C
B hérite de c avec un discriminant sur le type (idReferenceType).
A a une relation 1 to 1 avec B.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @Entity @Table(name="MUSICNOMENCSHEET") public class A{ @OneToOne(fetch=FetchType.EAGER,cascade=CascadeType.REFRESH) private B b; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Entity @Table(name="REFERENCEFILE") @DiscriminatorColumn(name="Type",discriminatorType=DiscriminatorType.INTEGER) class B { ... public int getType() { return idType; } }J'espère que quelqu'un aura eu le même problème parce que là...je sèche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Entity @DiscriminatorValue(value="1") public class C extends B{ }
Merci à tous !
Partager