Hibernate - присоединиться к таблице с составным идентификатором

У меня есть личный стол (PersonID) и таблица адресов (AddressID). Я хочу создать новую таблицу Join под названием Person_Address какие карты Person->Adress используя ManyToMany отношения и я должен указать первичный ключ как композицию двух первичных ключей (PersonID - AddressID).

Как я могу сделать это, используя синтаксис Hibernate HBM?

1 ответ

Использование @ManyToMany и забудьте о соединении таблиц в Hibernate. Таблица соединений будет существовать в вашей базе данных, но не в вашем коде, Hibernate знает, как с этим справиться.

Пример:

Лицо класса (как владелец отношений):

@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 "многие ко многим".

Другие вопросы по тегам