JPA在列表中命名查询

时间:2012-07-26 10:03:54

标签: sql jpa jpa-2.0

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

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

例如,如果我有第1组包含用户1而用户2.第2组包含没有用户。

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

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

我可以在JPA中这样做吗?我知道JPQL的IS EMPTY部分,所以无论用户如何,我都可以返回第2组。我的问题是如何在列表中查询。

任何指针都会很好。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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

例如

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

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