带有OR的JPQL不会返回预期结果

时间:2014-05-08 18:49:17

标签: java database jpql

我想让所有没有用户的客户或列表中的特定用户。 但我总是得到错误的结果。 如果我将这一个分成两个查询,它就像一个魅力。只有连接它们才会失败。

我希望你能帮助我;)

这是我的查询:

Query q = em.createQuery("SELECT c FROM Clients c WHERE SIZE(c.usersList) = 0 OR ?1 MEMBER OF c.usersList"); q.setParameter(1, user);

1 个答案:

答案 0 :(得分:0)

使用LEFT JOIN代替来自MEMBER OF的隐式联接帮助:

SELECT c 
FROM Client c LEFT JOIN c.usersList u 
WHERE SIZE(c.usersList) = 0 OR u = ?1