HQL中的ManyToMany关系

时间:2011-10-04 07:42:39

标签: hibernate hql

我有以下关系:

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()); 

但它没有帮助。

1 个答案:

答案 0 :(得分:2)

尝试:

session.createQuery("SELECT u FROM User u left join u.groups as g with g = :group").setObject("group", group);