Мне нужно иметь уникальный идентификатор по всем таблицам в моей базе данных, который начинается со смещения, скажем 1000. Идентификаторы ниже этого смещения зарезервированы для специальных записей, на которые ссылаются константы в Java-код. Другими словами, первая запись, которая сохраняется в любой таблице, я ожидаю иметь идентификатор 1000, следующий 1001 и т. Д.Hibernate игнорирует initialValue для генератора последовательности
Я следовал инструкциям в документации Hibernate и различным сообщениям, и это аннотации, которые я используя:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "my_sequence", initialValue = 1000, allocationSize = 10)
private long id;
К сожалению, Hibernate полностью игнорирует параметр initialValue. Он генерирует следующий код:
create table hibernate_sequence (next_val bigint)
insert into hibernate_sequence values (1)
У меня также была попытка с помощью стратегии ТАБЛИЦА, которая также не работает. Идентификатор начинается с 1.
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@TableGenerator(name = "my_sequence", initialValue = 1000, allocationSize = 10)
private long id;
Кстати, это работает с провайдером EclipseLink JPA. Моя версия Hibernate - 5.2.7, и я просматриваю JPA API. Я использую MySQL.
Неужели кто-нибудь испытал эту проблему?
Заранее спасибо.
Это ничего не меняет. Hibernate игнорирует параметры аннотации, такие как имя таблицы или начальное значение: «create table hibernate_sequences». В конце концов, эти параметры являются необязательными. – Wombat