2012-07-26 80 views
0

我有一个与用户有一对多关系的组。 (一个组可以有零个或1+用户)JPA在列表中命名查询

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

例如,如果我有组1包含用户1和用户2.组2不包含用户。

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

如果我是用户2然后我想回到第1组和第2组

我能做到这一点的JPA?我知道JPQL的IS EMPTY部分,因此无论用户身份如何,都可以返回组2。我的问题是如何在列表中查询。

任何指针都不错。

感谢您的帮助

回答

0

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

例如

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

组是我的实体包含用户

列表