Bonjour,
Ton problème, c'est que ton shéma de base de donnée ne correspond pas a ta classe. Je m'explique. Dans ta classe, tu précise que a chaque localité est associée une localité principale. Alors, tu devrais avoir ceci dans ta base de donnée:
Table localite:
ID: number, primary key, sequence, not null
NUMORDRE: number
TYPE: number
LOCALITE_PRINCIPALE: number, foreign key (localite.ID)
D'un autre coté, si je lit ta requete sql:
select * from LOCALITE L1
left outer join LOCALITE L2
on L1.EXT_ID = L2.EXT_ID
and L1.TYPE = 3
and L2.NUMORDRE is null
et que ta db contient:
Code:
ID EXT_ID NUMORDRE TYPE
...
101 69 1 3
102 69 null null
103 69 null null
...
Si je ne me trompe, tu aura deux L2 différents pour un L1 donné sans pour autant rompre le shéma de la db mais ca ne collerais pas a la classe que tu as définie.
Si vraiment tu insiste pour obtenir une Localité par une telle méthode, tu peux toujours utiliser un formula pour la propriété:
<property name="localitePrincipale" class="Localite" formula="(select ......)"/>
Mais attention, dans ce cas, hibernate ne fait que lire la valeur, il ne l'update pas!