JPQL语句返回布尔值

时间:2012-08-21 09:06:01

标签: select jpa jpa-2.0 jpql

是否可以编写如下的JPQL查询:

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

将返回true / false布尔值,具体取决于实体填充标准是否存在?

我想以这种方式使用查询:

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

来自我的示例的查询在语法上是不正确的(解析错误),但有没有正确的方法在JPQL中进行检查,这将返回布尔值,还是只能在Java代码中进行?

3 个答案:

答案 0 :(得分:45)

是的,可以通过以下方式实现:

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

答案 1 :(得分:12)

仅仅是:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 OPR/29.0.1795.47

答案 2 :(得分:1)

我遇到了同样的问题,然后我将我的hibernate更新为4.3.11.Final,现在它正在运行。