SpringData : est-il possible d'avoir les sous-requêtes dans la Requête d'annotation?
Je voudrais savoir si il est possible d'avoir des sous-requête dans un @Requête d'annotation (org.springframework.les données.jpa.référentiel.Requête;)
Je suis QuerySyntaxException sur la première sous-requête parentesis.
Voici ma requête
@Query(value="select c1 from ComplaintModel c1, "
+ "(select c2.id, min(cb.termDate) minDate from ComplaintModel c2 "
+ "join c2.complaintBullets cb join cb.status s where s.code = ?1 "
+ "group by c2.id) tmp where c1.id = tmp.id order by tmp.minDate")
Merci!
- Il n'est pas sur les Données du Printemps, je crois que vous ne pouvez pas le faire en JPQL trop.
Vous devez vous connecter pour publier un commentaire.
Non, il n'est pas possible d'avoir des sous-requête dans la clause select de la requête JPQL.
JPQL prend en charge les sous-requêtes dans les clauses where et HAVING. Il peut être (au moins) de TOUT, QUELQUE, TOUT, DANS, EXISTENT des expressions, et bien sûr, il peut être utilisé à la normale des expressions conditionnelles:
J'ai eu les résultats escomptés dans Spring-data jpa avec
où
Table2Obj & Table3Obj sont la représentation de la relation entre les entités Table1 et Table2, Tableau3 respectivement.
défini Comme ci-dessous.
Le contenu de la
@Query
annotation est plus ou moins passé comme pour le fournisseur de persistance en appelantEntityManager.createQuery(…)
. Donc tout ce qui est autorisé dans il peut être utilisé dans@Query
. Autant que je sache, JPQL (par le temps de JPA 2.0) ne prend en charge les sous-requêtes pourEXISTS
etIN
clauses.