Я использую JPA + OpenJPA с PostgreSQL в качестве серверной СУБД. Первичные ключи моих таблиц обычно состоят из столбца SERIAL
/ BIGSERIAL
. Таким образом, PostgreSQL автоматически генерирует идентификаторы для новых записей (strategy=GenerationType.IDENTITY
).
Аннотации свойства ID выглядят так:
@Id
@SequenceGenerator(name="myseq",sequenceName="foobartable_fooid_seq")
@GeneratedValue(generator="myseq",strategy=GenerationType.IDENTITY)
Мой вопрос: могу ли я скопировать и вставить этот блок аннотаций в несколько объектов, изменяя только значение sequenceName
? sequenceName
отличается от стола к столу. Но может ли SequenceGenerator всех сущностей называться myseq
или что-то в этом роде? Или нужно указать уникальное имя генератора для SequenceGenerator каждой сущности? Так что каждое имя SequenceGenerator должно быть уникальным в единице сохранения?
Возможно, стоит использовать то же значение, что и для sequenceName в базе данных? Чтобы написать что-нибудь вроде
@Id
@SequenceGenerator(name="foobartable_fooid_seq",sequenceName="foobartable_fooid_seq")
@GeneratedValue(generator="foobartable_fooid_seq",strategy=GenerationType.IDENTITY)
Любые рекомендации о том, как назвать SequenceGenerators?
Большое спасибо за любые предложения!
Ваш, мистер Снруб