1

Java Persistence wiki で説明されているものとまったく同じ結合テーブルで確立された ManyToMany 関係がありますManyToMany 関係の注釈の例. Employees & Projects の wiki の例を参照として使用すると、例にリストされているコードは、EMP、PROJ、および EMP_PROJ 結合テーブルの 3 つのテーブルを正常に作成します。私がやりたいことは、その EMP_PROJ 結合テーブルを別のエンティティで使用することです。EMP_PROJ 結合テーブルに列を追加したくありません。たとえば、管理者がプロジェクトを従業員に関連付けるとします。そのリストは EMP_PROJ に格納されます。私がやりたいことは、従業員のために、その従業員に関連付けられたプロジェクトのリストを返す ManagerReport と呼ばれる別のエンティティを作成することです。マネージャーは、開始日、終了日、業績など、従業員の各プロジェクトに関する特定の情報を入力できます。

以下は、Wiki ページから抜粋した表とサンプル コードです。

EMPLOYEE (table)
ID  FIRSTNAME   LASTNAME
1   Bob     Way
2   Sarah   Smith

EMP_PROJ (table)
EMP_ID  PROJ_ID
1   1
1   2
2   1

PROJECT (table)
ID  NAME
1   GIS
2   SIG

@Entity
public class Employee {
  @Id
  @Column(name="ID")
  private long id;
  ...
  @ManyToMany
  @JoinTable(
      name="EMP_PROJ",
      joinColumns={@JoinColumn(name="EMP_ID", referencedColumnName="ID")},
      inverseJoinColumns={@JoinColumn(name="PROJ_ID", referencedColumnName="ID")})
  private List<Project> projects;
  ...
}
4

1 に答える 1