У меня есть база данных с отношениями PERSON
- ADDRESS
- ADDRESS_TYPE
, поддерживаемыми таблицей тройного соединения PERSON_ADDRESS
. Отношение PERSON
- ADDRESS
фактически означает «один ко многим».
PERSON
ID FIRSTNAME LASTNAME -- --------- -------- 1 John Doe 2 Jane Doe
ADDRESS
ID STREET CITY -- -------------------- ------------- 1 Home Street 1 Hometown 2 Office Street 1 Officetown 3 Main Street 1 Maintown 4 Business Building 1 Businesstown
ADDRESS_TYPE
ID NAME -- --------------- 1 Home Address 2 Office Address
PERSON_ADDRESS
PERSON_ID ADDRESS_TYPE_ID ADDRESS_ID --------- --------------- ---------- 1 1 1 1 2 2 2 1 3 2 2 4
По практическим соображениям I ' хочу, чтобы моя сущность Person
в конечном итоге выглядела так:
public class Person {
private Address homeAddress; // Insertable/updateable by ADDRESS_TYPE_ID=1
private Address officeAddress; // Insertable/updateable by ADDRESS_TYPE_ID=2
}
Возможно ли это когда-либо с аннотациями JPA 2.0?
Я прочитал главу Ключевые столбцы карты в викибуке JPA , и мне кажется, что мне нужно использовать @MapKeyJoinColumn
, но мне не совсем понятно, как его успешно использовать в этой ситуации. Я ожидал увидеть в нем пример @JoinColumn
, но он отсутствует во фрагментах кода в викибуке.
Если это невозможно с @MapKeyJoinColumn
, тогда альтернативный подход с помощью, возможно, @MapKeyClass
на Map
также приветствуется, если я могу получить getHomeAddress ()
и getOfficeAddress ()
в сущности Person
.