0

Person テーブル ( PersonID) と Address テーブル ( AddressID) があります。リレーションシップを使用してPerson_Addresswhich mapsという名前の新しい結合テーブルを作成したいのですが、主キーを 2 つの主キーの構成として指定する必要があります ( )。Person->AdressManyToManyPersonID - AddressID

Hibernate HBM 構文を使用してそれを行うにはどうすればよいですか?

4

1 に答える 1

1

Hibernate で結合テーブルを使用@ManyToManyして忘れます。結合テーブルはデータベースに存在しますが、コードには存在しません。Hibernate はこれを処理する方法を知っています。

例:

Person クラス (関係の所有者として):

@ManyToMany(targetEntity = Address.class, cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = fetchType.LAZY)
@JoinTable(name = "person_address", joinColumns = @JoinColumn(name = "PersonID"), inverseJoinColumns = @JoinColumn(name = "AddressID"))
List<Address> addresses;

住所クラス (必要な場合):

@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "addresses", targetEntity = Person.class, fetch = FetchType.LAZY)
List<Person> persons;

編集:

このリンクは、多対多の XML マッピングに役立ちます。

于 2013-01-04T11:47:02.443 に答える