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