HQL: Hibernate запрос с ManyToMany

У меня вопрос с HQL запросом и hibernate.

У меня есть класс пользователя и класс роли. У пользователя может быть много ролей. Поэтому у меня есть связь ManyToMany вот так:

В классе пользователя:

@ManyToMany(fetch = FetchType.LAZY)
@oinTable(name = "PORTAIL_USERROLE", joinColumns = { @JoinColumn(name = "USERID", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "ROLE", nullable = false, updatable = false) })
public Set<Portailrole> getPortailroles() {
    return this.portailroles;
}

В классе роли:

@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "PORTAIL_USERROLE", joinColumns = { @JoinColumn(name = "ROLE", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "USERID", nullable = false, updatable = false) })
public Set<Portailuser> getPortailusers() {
    return this.portailusers;
}

Эта связь создала 3-ю таблицу (PORTAIL_USERROLE), в которой хранятся отношения. Все работает нормально в таком виде. Когда у меня есть пользователь, я получаю роли.

Но, мой вопрос заключается в следующем: в HQL запросе, как я могу получить всех пользователей, которые имеют определенную роль? Любой класс представляет таблицу PORTAIL_USERROLE, поэтому я не знаю, как сделать свой HQL запрос.

13
задан Pascal Thivent 13 August 2010 в 12:03
поделиться