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