JPQL查询---怎么用'是null'

时间:2010-12-19 10:39:51

标签: jpql

我在JPQL中使用以下查询来查询地址栏为空的人。

  

列出rl =                   em.createQuery(“选择o作为o在哪里   o.address IS NULL“)。setFirstResult(   0).setMaxResults(50).getResultList();   ...

这行代码总是返回一个空列表,显然表中的条目符合条件。

  

class Person {       地址;       字符串名称;       ...}   class Address {       字符串名称;       ......}

任何人都知道这个jpql语句出了什么问题? 提前谢谢。

1 个答案:

答案 0 :(得分:18)

如上所述,地址栏为空,然后尝试使用 IS EMPTY 表达式而不是 IS NULL

em.createQuery( "SELECT o FROM Person o where (o.address.id IS NULL OR o.address.id = 0").setMaxResults(50).getResultList();

根据id的数据类型检查约束。

此外,无需提及 setFirstResult(0),因为它不会跳过任何结果&没有它,默认情况下将获取所有匹配的结果。