web-dev-qa-db-fra.com

Instruction JPQL renvoyant une valeur booléenne

Est-il possible d'écrire une requête JPQL comme suit:

select count(*) > 0 from Scenario scen where scen.name = :name

qui renverrait des valeurs booléennes vraies/fausses selon que les critères de remplissage de l'entité existent ou non?

J'aimerais utiliser la requête de cette façon:

boolean exists = entityManager.createQuery(query,Boolean.class).setParameter("name",name).getSingleResult();

La requête de mon exemple n’est tout simplement pas correcte sur le plan syntaxique (erreur d’analyse), mais existe-t-il une méthode correcte pour effectuer des contrôles comme celui-ci en JPQL, qui renverrait une valeur booléenne ou est-ce uniquement possible en code Java?

27
Piotr Sobczyk

Oui, c'est possible avec ce qui suit:

select case when (count(scen) > 0)  then true else false end  
from Scenario scen where scen.name = :name
43
Mikko Maunu

Qu'en est-il juste:

select count(scen) > 0
from Scenario scen where scen.name = :name
12
Stefan Haberl

J'avais le même problème, puis j'ai mis mon hibernation à jour en 4.3.11.Final et maintenant ça fonctionne.

1
Error