Я надеюсь, что смогу объяснить это ясно с первой попытки. Итак, у меня есть две сущности: Person и Address. У одного человека может быть много адресов, поэтому моя сущность Person состоит из списка адресов. Обратите внимание, что адреса могут быть общими для разных людей, однако мой объект Address не нуждается в ссылке на объект Person. Кроме того, каждый объект Address будет иметь атрибут rank.
Моя структура таблицы выглядит следующим образом:
PERSON (
person_id,
etc,
primary key (person_id)
)
ADDRESS (
address_id,
etc,
primary key (address_id)
)
PERSON_ADDRESS_MAP (
person_id,
address_id,
rank,
foreign key (person_id) references person (person_id),
foreign key (address_id) references address (address_id),
primary key (person_id, address_id, rank)
)
Учитывая вышеизложенное, я не уверен, как аннотировать свой список адресов лично или атрибут ранга в адресе. Я подозреваю, что Person будет выглядеть следующим образом:
@Entity
public class Person {
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(name="person_address_map", joinColumns=@JoinColumn(name="person_id"), inverseJoinColumns=@JoinColumn(name="address_id") )
private List<Address> addresses;
...
}
Я понятия не имею, как аннотировать rank в объекте Address.
заранее спасибо