Technology Beschreibung: Ruhe annotation- 3.4.0.GA Java 1.5Hibernate: Assoziationskartierung ternäre
Tabelle: users_roles_branches Spalten: User_id, role_id, branch_id
ein Benutzer zugewiesen ist verschiedene Rollen für verschiedene Zweige eines Unternehmens. Jetzt
Ich habe eine Java-Klasse pojo
public class branch
{
@ManyToMany
@JoinTable(name = "users_roles_branches", joinColumns = { @JoinColumn(name="branch_id") }, inverseJoinColumns = { @JoinColumn(name = "role_id") })
@MapKeyManyToMany(joinColumns = { @JoinColumn(name = "user_id", unique = false) })
public Map<User, Role> getUserRoleMap() {
return userRoleMap;
}
}
Grundvoraussetzung ist Liste der Rollen für verschiedene Benutzer in einem Zweig zugewiesen abzurufen.
Problemstellung: Da einem Benutzer mehrere Rollen zugewiesen werden können, funktioniert die Zuordnung für Benutzerrollenzuordnungsdaten nicht.
Eine Lösung könnte Map> sein, aber ich bezweifle, wenn ich verschachtelte Sammlung mit Hibernate verwenden kann.
Bitte helfen Sie mir!
Wenn Frage nicht verständlich oder nicht in darstellbarer Form ist, lass es mich wissen.
Ich möchte vermeiden, eine Klasse zu erstellen, die nicht direkt auf eine Entität zugeordnet ist. Ihre Lösung ist machbar, aber gibt es noch eine andere Möglichkeit, um das Erstellen von weiteren Klassen außer Role, User, Branch zu vermeiden. Wie die Verwendung einer Sammlung oder eines Wrappers der Sammlung. Danke für die Antwort. –
@ Maddy.Shik Hibernate scheint ternäre Assoziationen zu unterstützen. Siehe http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/collections.html#collections-ternary. Wird das für dich funktionieren? –
@Entity öffentliche Klasse Firma { @Id int id; ... @OneToMany // unidirektionale @MapKeyJoinColumn (name = "employee_id") Map Verträge; } In diesem Beispiel, wenn Mitarbeiter mehrere Verträge hat, wird es nicht funktionieren, was sehr wahrscheinlich in ternäre Assoziation ist. –