【发布时间】:2017-02-08 06:51:21
【问题描述】:
这可能看起来很基本,但为时已晚,我遇到了以下问题。
class Group {
@Id
String id;
}
class Participation {
@Id
String id;
@ManyToOne
@JoinColumn(name = "GROUP_ID")
Group group;
@ManyToOne
@JoinColumn(name = "USER_ID")
User user;
}
class User {
@Id
String id;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
Set<Participation> participations;
}
所以
参与 -->1 组
和用户 1N 参与
对于给定的用户,我如何检索所有具有相关参与的组(或 null 表示没有参与)?我一直在玩 join fetches 但到目前为止无济于事......
非常感谢,
中国
PS。因此,我可以在 SQL 中执行此操作:
select g.d, p.id
from group as g
left join participation as p
on p.group_id = g.id and p.user_id = 2;
【问题讨论】:
-
编辑:添加图表和更好的 sql 解决方案...
标签: java sql hibernate join hql