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;
   }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 !