2012-03-23 9 views
0

Angenommen, ich habe drei Klassen; UserAccount, UserGroup und Rolle.Hibernate Join eine andere verbundene Tabelle

UserGroup und Rolle sind wie;

public class UserGroup{ 

..... 

@ManyToMany 
@JoinTable(name="..." .......) 
List<Role> roleList=new ArrayList<Role>(); 


} 

public class Role{ 
@ManyToMany(mappedBy="roleList") 
List<UserGroup> groupList=new ArrayList<UserGroup>(); 

} 

Ich will erzählen meine Useraccount-Klasse mit dem Tisch verbunden ist, die Beziehung zwischen Usergroup und Rollen

public class UserAccount{ 

... 

@OneToMany 
@JoinTable(???????) 
List<???> ?????? 

} 

Gibt es eine Möglichkeit, das zu tun beschreibt?

Thank

Antwort

0

Ich glaube nicht, gibt es eine natürliche Art und Weise ist das mit dem aktuellen Objektstruktur zu tun, aber das ist, weil Sie Ihre Objekte in einer Art und Weise nicht definiert sind, die Ihren Bedürfnissen entspricht.

Wenn Sie eine Benutzerkontenentität mit einer Liste verwandter Benutzergruppen und Rollen und nicht nur mit einer Benutzergruppe oder nur mit einer Rolle verknüpfen möchten, müssen Sie eine Entität erstellen, die diese Kombination darstellt.

Es wäre etwa gehen Sie wie folgt vor:

Statt Benutzergruppe des Müssens Rolle beziehen in einer many-to-many-Beziehung durch eine Join-Tabelle definiert, erstellen Sie eine UserGroupWithRole Einheit, die eine Viele-zu-Eins-Beziehung hat zu Sowohl UserGroup als auch Role, und erstellen Sie eine Beziehung zu einer Liste von UserGroupWithRole Entitäten in Ihrem UserAccount.

+0

Vielen Dank. Wie kann ich Useraccount einer Benutzergruppe mit Kriterien finden? Ich habe es versucht, aber ich kann nicht Alias ​​auf Liste erstellen –

+0

Das Navigieren dieser Dinge nach Kriterien kann interessant sein, aber es kann getan werden und wird wahrscheinlich einen Alias ​​beinhalten. Es ist eine neue Frage wert. Stellen Sie eine weitere Frage mit den Zuordnungsdetails und dem, was Sie erhalten möchten, bereit. Ich könnte antworten oder jemand anderes würde es zuerst tun. –

Verwandte Themen