2

アプリケーションにHibernateを使用しています.2つのテーブルに多対多の関係があり、両方にPOJOがありますが、関係はPOJOを持たない3番目のテーブルで定義されています.2つのテーブルを関連付けて使用するにはどうすればよいですか?

4

1 に答える 1

2

TableAとTableBにPOJOがあり、TableCにPOJOを作成せずに、テーブルCでそれらの間に多対多の関係を関連付けたいとします。

テーブルCにテーブルAとテーブルBへの外部キー制約がある2つの列のみが含まれている場合は、@ManyToManyおよびを使用してそれを実現でき@JoinTableます。

@Entity
public class TableA{

  @ManyToMany
  @JoinTable(
        name = "TableC",
        joinColumns = {@JoinColumn(name = "TableA_ID")},
        inverseJoinColumns = {@JoinColumn(name = "TableB_ID")}
  )
  private List<TableB> tableB= new ArrayList<TableB>();

}

@Entity
public class TableB{

  @ManyToMany(mappedBy="tableB")
  private List<TableA> tableA= new ArrayList<TableA>();

}

ただし、テーブルCに他のテーブルへの外部キー制約のない追加の列(の列などlast_modified_date)がさらに含まれている場合は、それを行うことはできません。テーブルCをPOJOとして宣言し、多対多の関連付けを2つとしてモデル化する必要があります。 -表Cへの多対多の関連付け

于 2012-04-10T07:52:58.210 に答える