COMMANDE à l'aide de Critères de l'API
Quand j'écris une requête HQL
Query q = session.createQuery("SELECT cat from Cat as cat ORDER BY cat.mother.kind.value");
return q.list();
Tout va bien. Cependant, quand j'écris un des Critères
Criteria c = session.createCriteria(Cat.class);
c.addOrder(Order.asc("mother.kind.value"));
return c.list();
J'obtiens une exception org.hibernate.QueryException: could not resolve property: kind.value of: my.sample.data.entities.Cat
Si je veux utiliser des Critères et de l'Ordre, comment devrais-je exprimer mon "order by"?
- Que fait votre Chat de la classe et de sa cartographie ressembler?
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour créer un alias pour le
mother.kind
. Vous faire comme si.session.createCriteria
n'est pas déconseillée.Il est difficile de le savoir sans voir les correspondances (voir @Juha du commentaire), mais je pense que vous voulez quelque chose comme ce qui suit:
Vous pouvez ajouter une jointure type de bien:
C'est ce que vous avez à faire depuis sess.createCriteria est obsolète:
Hibernate 5.2
.Pour Hibernate 5.2 et au-dessus, l'utilisation
CriteriaBuilder
comme suit