Bonjour,

J'ai 3 objets liés : A contenant un attribut de classe B (relation 0,n, mappée en one-to-many), contenant lui-même un attribut de classe C (relation de cardinalité 1).

Je cherche à lire tous les objets A, y compris ceux pour lesquels B est null.

Voici de qu'on trouve dans la méthode de recherche :

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
public List<A> findListeAPourUnProfil(CriteresRechercheA leCritereRechercheA)
    {
        DetachedCriteria criteria = DetachedCriteria.forClass(A.class);
 
 
 
        criteria.createAlias("b", "bb", CriteriaSpecification.LEFT_JOIN);
        criteria.createAlias("bb.c", "c", CriteriaSpecification.LEFT_JOIN);
 
 
        criteria.add(Restrictions.eq("bb.c", leCritereRechercheA.getC()));
 
        List<A> listA = getHibernateTemplate().findByCriteria(criteria);
 
        return listAAfficher;
    }
Le hic, c'est que la méthode ne me retourne pas les éléments A pour lesquels B est null, et ce malgré la jointure externe. J'ai essayé avec un FULL_JOIN sans plus de succès, et avec des setFetchMode différents également.

Y a t-il un moyen autre que le HQL ou un sous-select pour palier ce problème?

D'avance, merci.

Thomas