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


清单rl =
em.createQuery(“从“人员”中选择o作为o
o.address IS NULL“).setFirstResult(
0).setMaxResults(50).getResultList();
...


此行代码始终返回一个空列表,显然该表确实具有符合条件的条目。


类人{
地址;
字符串名称;
...}
课程地址{
字符串名称;
...}


有人知道这个jpql语句有什么问题吗?
提前致谢。

最佳答案

如前所述,地址列为空,然后尝试使用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),因为它不会跳过任何结果;如果没有它,默认情况下将提取所有匹配的结果。

关于jpql - JPQL查询-如何使用“为空”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4482560/

10-11 02:04