Le Wed, 3 Nov 2010 20:22:09 +0100 (CET), leny@codelutin.com a écrit :
Supposons que dans mon modèle, j'ai
Bidule -- 1 ---------------- * --> Chouette
Sur cette relation, j'ai ajouté un lazy=false (quand je récupère un bidule, j'ai tous les chouettes associés). J'ai également ajouté "ordered", ce qui fait que le Bidule#getChouette ne retourne pas Collection<Chouette> mais List<Chouette>.
Première question, comme fait topia pour conserver l'ordre en base ?
Supposons maintenant que j'ai
Bidule -- 1 ---------------- * --> Chouette attr : int
Deuxième question : est-ce qu'il existe une tag-value ou autre chose qui me permettrait que le Bidule#getChouette() me retourne la liste triée dans l'ordre des valeurs de attr. Autrement dit, que quand j'utilise par exemple le BiduleDAO pour faire un find et récupèrer un Bidule, le find (vu que lazy = false) récupère les chouettes avec une requête et y ajoute une clause "orderBy attr" pour que les choses soient dans l'ordre.
Oui on a un tag-value orderBy que tu positionnes sur l'un des extrémités d'une relation dans le modèle. Ce que je ne sais pas c'est si on peut utiliser cette tag-value en dehors d'une modèle xmi (par exemple dans le fichier properties associé au modèle). Ensuite, dans le mapping on a un truc du genre : <bag name="route" order-by="jourObservation" lazy="true" cascade="all,delete-orphan" node="route" embed-xml="false"> <key column="maree"/> <one-to-many class="fr.ird.observe.entities.RouteImpl" node="topiaId" embed-xml="false"/> </bag> Donc c'est directement au niveau d'hibernate que c'est géré.