TOPLINK - discriminator column + outer join
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:
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:
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;
}
} |
Code:
1 2 3 4 5
| @Entity
@DiscriminatorValue(value="1")
public class C extends B{
} |
J'espère que quelqu'un aura eu le même problème parce que là...je sèche
Merci à tous !