comportement du order-by
Hello, En codant les tests du mapping pour le order-by je me suis rendu-compte d'un truc : L'ordre induit par le order-by n'est garanti que sur la récupération de la relation, c'est à dire lors de la requète sql qui récupère les données de la relation. Ensuite si on modifie l'ordre au sein de la collection alors plus rien n'est garanti. Je trouve ça un peu troublant. Doit-on laisser comme ça ou bien forcer topia à garantir tout le temps l'ordre souhaité ? Merci pour vos réactions. tony. -- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
Bien vu. J'aurais dit qu'il faut maintenir l'ordre. Le 24/05/2012 09:43, Tony Chemit a écrit :
Ensuite si on modifie l'ordre au sein de la collection alors plus rien n'est garanti. Je trouve ça un peu troublant.
-- Brendan Le Ny, Code Lutin bleny@codelutin.com (+33) 02 40 50 29 28
Le 24/05/2012 11:41, Brendan Le Ny a écrit :
Bien vu. J'aurais dit qu'il faut maintenir l'ordre.
Si on fait ça, je vois 2 options : - On génère de quoi faire un tri en runtime ; - On fait un entityManager.clear() après chaque commit pour vider le cache (et donc forcer le rechargement). Aucun des 2 ne me convient personnellement. Arnaud
On Thu, 24 May 2012 15:26:59 +0200 Arnaud Thimel <thimel@codelutin.com> wrote:
Le 24/05/2012 11:41, Brendan Le Ny a écrit :
Bien vu. J'aurais dit qu'il faut maintenir l'ordre.
Si on fait ça, je vois 2 options : - On génère de quoi faire un tri en runtime ; - On fait un entityManager.clear() après chaque commit pour vider le cache (et donc forcer le rechargement).
Aucun des 2 ne me convient personnellement.
Salut, Je ne sais pas si j'ai bien compris. Mais en gros lors du restaure la collection est bien triée. Mais si tu fais un add sur ce champs, l'ordre n'est plus garantie ? Si c'est bien ça, ça ne me dérange pas, dans le sens ou vouloir en faire plus, c'est commencer a fabriquer une usine a gaz pour ça :( (en tout cas je ne vois pas de solution simple :(). En gros, soit on fait une nouvelle requete a chaque modification pour que la base nous recharge les objets dans le bon ordre :( (trop coûteux en temps, pour un besoin qui n'est peut-etre pas la cote applicatif). Soit on réimplante un Comparator pour chaque collection (et on utiliserait une collection triée). L'implantation de ce comparator peut-etre très tordu, trop pour prendre le temps de le faire (amha) Je pense que le mieux est de prévenir (via la javadoc généré) que l'ordre n'est garantie qu'au chargement. Mais que si le programme fait des modif, il doit lui même recharger l'objet pour que la collection soit dans le bon ordre. (ça revient a la 1, mais c'est le développeur qui le fait lorsqu'il en a vraiment besoin). -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com
participants (4)
-
Arnaud Thimel -
Benjamin POUSSIN -
Brendan Le Ny -
Tony Chemit