я столкнулся вне проблемы с поколения ID для моих сущностей, порожденных JHipster:Почему и как hibernate_sequence используется для идентификатора generatior
- Dev среды на базе H2
- Prod окружающей среды на Postgres
- у меня есть один объект «станция» с двумя полями «ид» и «имя»
- Создание сценария LiquiBase который импортирует словарь в таблице «станции», как
INSERT INTO station (name) VALUES ('Adygeya')
без определения ID - Попытка добавить станцию на Dev среде - OK
- Попытка добавить станцию на прод - Hibernate пытается добавить новую станцию с дублированным ID
ПОЧЕМУ?
Мои исследования показали, что только для postgres и oracle в начальной схеме jhipster создал новую последовательность «hibernate_sequence», которая используется для создания новых сущностей.
Так что я фиксированные этот неправильный behaivour, добавив определенное имя последовательности для моего объекта правила генерации ID
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "station_gen")
@SequenceGenerator(name = "station_gen", sequenceName = "station_id_seq")
private Long id;
Теперь у меня есть только три вопроса:
- Почему JHipster используя один sequince для все таблицы для postgres и oracle?
- Где он настроен?
- Что я делаю неправильно?
Какая версия JHipster? Я думаю, что это стратегия по умолчанию либо в весенних данных, либо в Hibernate. Использование только одной последовательности для всех таблиц не объясняет проблему с дублирующимися ключами. У меня такая же настройка, и я не получил ее. –
Да, это стратегия Hibernate по умолчанию. –
@ GaëlMarziou JHipster v. 3.9.1 –