Много-много отношений в HQL - PullRequest
       8

Много-много отношений в HQL

0 голосов
/ 04 октября 2011

У меня есть следующие отношения:

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 Ответ

2 голосов
/ 04 октября 2011

Попробуйте:

session.createQuery("SELECT u FROM User u left join u.groups as g with g = :group").setObject("group", group);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...