J'essaie de trier la liste d'objet parent par la valeur de son enfant qui est un ensemble. Alors disons que je ff:Tri d'un objet parent par la valeur de son ensemble enfant
Parent1 avec le nom des enfants rose
Parent2 avec le nom des enfants camée
Parent3 avec le nom des enfants de abba, Zeon, max.
Lorsque je le trier en descendant, il doit afficher Parent3 en premier, car il a un z. Ceci est mon hql courant qui obtient un mauvais résultat de 1> 2> 3:
SELECT DISTINCT p FROM Parent p JOIN p.children c ORDER BY c.name desc
Sans distincte, il obtient très bien même si elle sélectionne plusieurs mêmes parents.
J'ai une configuration de modèle comme ci-dessous:
public class Parent {
private Set<Child> children = new HashSet<Child>();
}
public class Child{
private String name;
}
Edit: Réussi à trier HQL order by within a collection bien que lorsque les deux parents ont la même valeur children.name, il ne compare pas la prochaine valeur possible. C'est à dire.
Si Parent1 a des enfants abba, Zeon
Parent2 a des enfants abba, camée
Ordre ascendant devrait donner la priorité Parent2 premier.
On dirait que cela a déjà été répondu dans [hql-order-by-within-a-collection] (https://stackoverflow.com/questions/666423/hql-order-by-within-a-collection) help –
@Jorge Merci pour ce travail bien que si les deux parents ont la même valeur children.name il ne compare pas la valeur du nom suivant ie tous deux ont un enfant nommé acacia en supposant l'ordre ascendant il comparera la valeur suivante jusqu'à ce qu'il trouve la première valeur possible il y a – Rian