0

3 つのエンティティPersonTaskあり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 対多NotePerson_Task_Note

今、JPA2 と Hibernate を使用してこの構造をマップしようとしています。私の目標は、次のオプションを持つ 3 つの基本エンティティのみをコードに含めることです。

  • 個人のすべてのタスクを取得 ( person.getTasks())
  • ユーザーのタスクに関するすべてのメモを取得する ( task.getNotes())

すべての単一テーブルをクラスにマップしてから、ファット JPA 基準クエリを使用して必要な情報を取得できることを認識しています。

ただし、(可能であれば)結合テーブルのクラスを作成することは避けたいと思います。

と の関係をマッピングすると、Person現在、エントリを取得するためにさらに進むTask方法@ManyToManyがわかりませんNote

結合テーブルのクラスを記述せずに JPA アノテーションを使用するだけで、この種のマッピングを行うことは可能ですか?

4

1 に答える 1

1

いいえ、できません。すべてのテーブルをマップし、Person と Task の間の ManyToMany を 2 つの OneToMany アソシエーションに変換する必要があります。

于 2012-12-07T14:23:27.827 に答える