3 つのエンティティPerson
がTask
ありNote
、次のように動作する必要があります。
- 1 人が複数のタスクを担当できる
- 1 つのタスクを複数の人に割り当てることができます
- 各ユーザーは、タスクに複数のメモを添付できます。
これに基づいて、次の表があります。
Person Task Person_Task Note Person_Task_Note
------- ---- ----------- ----------- ----------------
id id id id id
name name person_id description person_task_id
task_id note_id
次の関係で:
- 結合テーブルとして
Person
使用Task
する多対多Person_Task
- 結合テーブルとして使用する
Person_Task
との間の 1 対多Note
Person_Task_Note
今、JPA2 と Hibernate を使用してこの構造をマップしようとしています。私の目標は、次のオプションを持つ 3 つの基本エンティティのみをコードに含めることです。
- 個人のすべてのタスクを取得 (
person.getTasks()
) - ユーザーのタスクに関するすべてのメモを取得する (
task.getNotes()
)
すべての単一テーブルをクラスにマップしてから、ファット JPA 基準クエリを使用して必要な情報を取得できることを認識しています。
ただし、(可能であれば)結合テーブルのクラスを作成することは避けたいと思います。
と の関係をマッピングすると、Person
現在、エントリを取得するためにさらに進むTask
方法@ManyToMany
がわかりませんNote
結合テーブルのクラスを記述せずに JPA アノテーションを使用するだけで、この種のマッピングを行うことは可能ですか?