我有以下关系:
public class Group {
private Integer id;
(...)
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="rb_user_group",
joinColumns={@JoinColumn(name="group_id")},
inverseJoinColumns={@JoinColumn(name="user_id")})
private List<User> users;
和:
public class User {
private int id;
(...)
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="rb_user_group",
joinColumns={@JoinColumn(name="user_id")},
inverseJoinColumns={@JoinColumn(name="group_id")})
private List<Group> groups;
}
选择属于设置了组名的某个组的所有用户的正确方法是什么? 我试过了
session.createQuery("SELECT g.user FROM Group g WHERE g.name=:name").setString("name", group.getName());
但它没有帮助。
答案 0 :(得分:2)
尝试:
session.createQuery("SELECT u FROM User u left join u.groups as g with g = :group").setObject("group", group);