HQL 中的多对多关系

发布于 2024-12-07 19:17:45 字数 859 浏览 0 评论 0原文

我有以下关系:

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

,但没有帮助。

I've got the following relations:

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;

and :

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;
}

What is the proper way to select all users that belong to some group where group's name is set?
I tried

session.createQuery("SELECT g.user FROM Group g WHERE g.name=:name").setString("name", group.getName()); 

but it doesn't help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

和我恋爱吧 2024-12-14 19:17:45

尝试:

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

Try:

session.createQuery("SELECT u FROM User u left join u.groups as g with g = :group").setObject("group", group);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文