Ich habe folgenden TabellenHibernate mehrere Join-Tabelle
User (has FK_RoleKey) -> UserRole (Role Key)
UserRoleResourceAccess(FK_RoleKey) -> UserRole(RoleKey)
UserRoleResourceAccess (has FK_ResourceKey) -> Resource (ResourceKey Key)
Eg Reihe:
User-> EmailId = [email protected] | FK_RoleKey = 1
UserRole -> Role Key=1| RoleName= Admin
Resource -> Resource Key=1 | Resource name= "page1"
UserRoleResourceAccess -> FK_RoleKey =1 |FK_ResourceKey = 1
Wie kann ich die Benutzer alle Privilegien erhalten (Rolle und Ressourcen) einer bestimmten Benutzerabfrage mit Hibernate Kriterien.
Kurz: Das ist, was ich in einer einzigen Hibernate Abfrage
select * from User user
LEFT JOIN UserRole userRole
ON user.`FK_RoleKey` = userRole.`RoleKey`
LEFT JOIN UserRoleResourceAccess userRoleResourceAccess
ON userRoleResourceAccess.`FK_RoleKey` = userRole.`RoleKey`
LEFT JOIN `Resource` resource
ON resource.`ResourceKey` = userRoleResourceAccess.`FK_ResourceKey`
where user.`EmailID` = 'abc';
aber dann muss ich eine andere Abfrage schreiben, um alle Ressource bezogen auf Rollen zu erhalten, die in UserRoleResourceAccess vorhanden ist. –
überprüfen Sie auch die bearbeitete Frage –
könnten Sie den Code der Entität der Benutzer Tabelle hinzufügen ... haben Sie die UserRoleResourceAccess Benutzer Tabelle ordnungsgemäß mit @OnetoOne und @JoinColumn zugeordnet? Wenn ja, sollte das oben genannte SQL funktionieren und Sie können die Daten wie die Art, wie ich festgestellt habe, abrufen ... –