0

ユーザー <---> グループなど、いくつかのエンティティ間に am:n の現実世界の関係がある ここで、この関係をモデル化し、それに基づいて追加情報 (フィールド「品質」など) を保存したいと考えています。

次のように、新しい結合テーブル user_group を作成する必要があると聞きました。

id | user_ref | group_ref | quality
----------------------------------
1      1           1         0.5
2      1           2         1.3
...    ...         ...        ...

対応するエンティティには、 @ManyToOneアノテーションが付けられた 2 つの関連エンティティ (プライベート メンバー) ユーザーとグループがあります。一方、ユーザーとグループの両方に、関連する user_group-entities のセットがあり、どちらもプライベート メンバーであり、@OneToMany アノテーションで宣言されています

3 つの質問があります。

  1. これは、JPA 2.0 の追加フィールドの問題をモデル化する正しい方法ですか?
  2. user_group のユーザーとグループの両方を主キーとして使用することは許可されていません。これらは有効な主キー タイプではないためです。新しいプライマリを宣言する必要がありますか。
  3. これは、これらの結合テーブル/エンティティの一般的なワークフローですか?

...

EntityManager em = ...
...
em.getTransaction().begin();
User u = new User("Pete");
Group g = new Group("Anonymous workaholics")
UserGroup ug = new UserGroup();
ug.addUser(u);
ug.addGroup(g);

em.persist(u); em.persist(g); em.persist(ug);
em.getTransaction().commit();
em.close()

どうもありがとう!

4

1 に答える 1