Новое поведение:
AllocationSize - это диапазон значений первичного ключа, зарезервированных для Hibernate.И выбор seq.nextval
из двойного будет сделан только после того, как hibernate использует этот диапазон первичных ключей.
Таким образом, вы должны объявить одно и то же значение как для allocationSize
(Hibernate), так и для последовательностиincrement by
(DB)
Когда явно задано значение allocationSize=500
, например, в Oracle
create sequence SEQ_ACE_WORKERS_QUEUE_STATS_ID
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 500
NOCACHE
NOCYCLE;
В противном случае вы заметите отрицательные значения или ошибки ограничения, возникшие в вашей БД из-за первичного ключаколлизии.
При перезапуске сервера приложений вы заметите «скачок» между последним выделенным первичным ключом и «новым» порядковым номером, выбранным при перезапуске.
Последний комментарий:значение по умолчанию - 50. Поэтому, если вы не укажете allocationSize
на стороне Hibernate, вы должны объявить increment by
50 на стороне БД.