Я хотел бы создать таблицу, где primary key
объекта должен также служить в качестве foreign key
для двух таблиц @ManyToOne
.Как использовать первичный ключ также как ссылку на внешний ключ с JPA и Hibernate?
Возможно ли это, не создавая дополнительных столбцов таблицы, ссылающихся и повторяющих один и тот же идентификатор первичного ключа?
Пример:
@Entity
public class Person {
@Id
private int personId;
@ManyToOne
@JoinColumn(name="fk_address_id", [email protected](name="fk_address"))
private Address address;
@ManyToOne
@JoinColumn(name="fk_location_id", [email protected](name="fk_location"))
private Location location;
}
Проблема: @Id
для Address
и Location
всегда то же самое, как @Id
от Person
. Отображение выше приведет к тому, что спящий режим будет генерировать 3 столбца. id, fk_address, fk_location
, где каждый из столбцов имеет одинаковое значение (id).
Вопрос: возможно ли иметь только primary key
@Id для человека и в то же время сообщить в спящий режим, что это внешний ключ для некоторых дополнительных сопоставлений внешнего ключа @ManyToOne
, без создания этих столбцов?
Посмотрите на [это] (http://stackoverflow.com/questions/29594577/hibernate-how-to-map-two-many-to- много-к-тому-сущности/29603999 # 29603999). – wypieprz