2012-03-23 21 views
0

私は3つのクラスがあると仮定します。 UserAccount、UserGroup、およびRole。別の結合テーブルをHibernateに結合

UserGroupとRoleは同じです。私がしたい

public class UserGroup{ 

..... 

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


} 

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

} 

はそれで私のUserAccountのクラスがそれをする方法はあるのUserGroupと役割

public class UserAccount{ 

... 

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

} 

の間の関係を記述したテーブルに参加した関係しますか?

感謝

答えて

0

私はあなたの現在のオブジェクト構造でこれを行うための自然な方法があります信じていませんが、あなたのオブジェクトは、あなたのニーズに合った方法で定義されていないので、それはです。

ユーザーアカウントエンティティを、関連するユーザーグループとロールのリストに、ユーザーグループだけでなく役割だけに関連付ける場合は、その組み合わせを表すエンティティを作成する必要があります。

次のようにそれは約行くだろう:

代わりにユーザーグループを持つのは、結合テーブルで定義された多対多の関係で役割に関連する、と多対1の関係にあるUserGroupWithRoleエンティティを作成UserGroupRoleの両方を入力し、UserAccountUserGroupWithRoleエンティティのリストとの関係を作成します。

+0

ありがとうございます。だから、どのように私は基準を持つユーザーグループのuseraccountを見つけることができます。私は試してみましたが、リスト上にエイリアスを作成することはできません –

+0

これらの項目を基準でナビゲートすることは面白いかもしれませんが、実行することができ、エイリアスが関与する可能性があります。新しい質問に値する。マッピングの詳細と取得しようとしているものについて別の質問を投稿してください。私は答えるか、他の誰かが最初にやるかもしれない。 –