У меня простой вопрос относительно объявления сущностей в JPA.У меня есть сущность с 2 внешними ключами, которые не равны NULL и образуют уникальное ограничение.Сначала я думал о составном ключе, состоящем из двух внешних ключей, но я слышал, что это устаревший дизайн, а не рекомендуемый способ создания новых таблиц.
Так что мне интересно, Hibernate / JPAможет автоматически генерировать идентификатор на основе двух внешних ключей.Допустим, у меня есть следующая сущность:
@Entity
public class Foo {
@ManyToOne
private Bar bar;
private int i;
}
(я пропустил теги not null и uniqueConstraint, чтобы сделать код более читабельным)
Я знаю, что могу просто добавить поле id с помощью GeneratedValueи позвольте моей БД сгенерировать ключ (в моем примере MySQL с auto_increment), но это мне кажется неэффективным, так как включает запрос к базе данных и запрос ее генерирования уникального значения идентификатора.
Есть ли способгенерации идентификатора, который не является составным (то есть типа int или long), на основе идентификатора класса "Bar" и значения целого числа "i", поскольку эти два значения уже образуют уникальное ограничение?