我想让所有没有用户的客户或列表中的特定用户。 但我总是得到错误的结果。 如果我将这一个分成两个查询,它就像一个魅力。只有连接它们才会失败。
我希望你能帮助我;)
这是我的查询:
Query q = em.createQuery("SELECT c FROM Clients c WHERE SIZE(c.usersList) = 0 OR ?1 MEMBER OF c.usersList");
q.setParameter(1, user);
答案 0 :(得分:0)
使用LEFT JOIN代替来自MEMBER OF的隐式联接帮助:
SELECT c
FROM Client c LEFT JOIN c.usersList u
WHERE SIZE(c.usersList) = 0 OR u = ?1