我在JPQL中使用以下查询来查询地址栏为空的人。
列出rl = em.createQuery(“选择o作为o在哪里 o.address IS NULL“)。setFirstResult( 0).setMaxResults(50).getResultList(); ...
这行代码总是返回一个空列表,显然表中的条目符合条件。
class Person { 地址; 字符串名称; ...} class Address { 字符串名称; ......}
任何人都知道这个jpql语句出了什么问题? 提前谢谢。
答案 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),因为它不会跳过任何结果&没有它,默认情况下将获取所有匹配的结果。