0

我有一个与用户有一对多关系的组。(一个组可以有 0 个或 1 个以上的用户)

我要编写一个 jpa 查询,如果它没有附加用户或者如果它确实有用户,则返回一个组,该 id 与我的 id 匹配。

例如,如果我的组 1 包含用户 1 和用户 2。组 2 不包含任何用户。

如果我是用户 3,我只想返回组 2。

如果我是用户 2,那么我想返回组 1 和组 2

我可以在 JPA 中执行此操作吗?我知道 JPQL 的 IS EMPTY 部分,因此无论用户如何,我都可以返回第 2 组。我的问题是如何在列表中查询。

任何指针都会很好。

感谢您的帮助

4

1 回答 1

0

我想我有。答案是左加入列表。

例如

SELECT g FROM Groups g left join fetch g.users u where (g.users IS EMPTY OR (u.id = :id))

组是我的实体,其中包含用户列表

于 2012-07-26T10:24:52.287 回答