Tu demandes a Hibernate une liste ordonnée suivant un champ order en base.
Ton filtre ne te remonte pas certaines objets qui ont été supprimé logiquement.
Il est normal qu'Hibernate remonte donc des nulls, correspondant à l'ensemble des objets supprimés.
si tu as un objet avec delete=0 et order=2, Hibernate te remontera obligatoirement un null dans la liste en position 2.
Ce comportement est normal! Si tu n'as pas besoin d'ordonnacement utilise alors un Set. Si tu as besoin d'ordonnacement alors lors de la suppression fait un décalage des éléments suivants qui sont présent dans la liste.
Lors du remove d'un élément de ta List, java fait ce décalage pour toi, et lors de la sauvegarde de ta grappe d'objet, Hibernate persiste ce décalage et va faire l'ensemble des update des différents objets qui ont changé d'ordre.
En espérant avoir été plus clair.
|