[英]JPQL with OR doesn't return expected result
I want to get all clients which have no users at all or a specific user in the list. 我想获取所有根本没有用户或列表中没有特定用户的所有客户端。 But I always get wrong results.
但是我总是得到错误的结果。 If I seperate the one into two queries it works like a charm.
如果我将一个查询分为两个查询,它就像一个符咒。 Only connecting them fails.
仅连接它们失败。
I hope you can help me ;) 我希望你能帮帮我 ;)
Here's my Query: 这是我的查询:
Query q = em.createQuery("SELECT c FROM Clients c WHERE SIZE(c.usersList) = 0 OR ?1 MEMBER OF c.usersList"); q.setParameter(1, user);
Using LEFT JOIN instead of implicit join coming from MEMBER OF helps: 使用LEFT JOIN代替MEMBER OF的隐式联接有帮助:
SELECT c
FROM Client c LEFT JOIN c.usersList u
WHERE SIZE(c.usersList) = 0 OR u = ?1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.