HQL: Abfrage im Ruhezustand mit ManyToMany
Ich habe eine Frage mit HQL-Abfrage und Ruhezustand.
Ich habe eine Benutzerklasse und eine Rollenklasse. Ein Benutzer kann viele Rollen haben. Also habe ich eine ManyToMany-Beziehung wie diese:
In Benutzerklasse:
@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;
}
In Rollenklasse:
@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;
}
Diese Zuordnung hat eine dritte Tabelle (PORTAIL_USERROLE) erstellt, in der Relationen gespeichert sind. Alle funktionieren gut so. Wenn ich einen Benutzer habe, rufe ich Rollen ab.
Aber meine Frage ist: Wie kann ich in einer HQL-Abfrage alle Benutzer ermitteln, die eine bestimmte Rolle haben? Jede Klasse repräsentiert die Tabelle PORTAIL_USERROLE, sodass ich nicht weiß, wie ich meine HQL-Abfrage durchführen soll.