У меня есть конфигурация jpa, подобная этой:
@Id
//@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_gen")
@GeneratedValue(generator = "timedep_seq_gen")
@GenericGenerator(
name = "seq_gen",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "sequence_myseq"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "10"),
@Parameter(name = "optimizer", value ="hilo")
}
)
private Long id;
Вставки создают значения идентификаторов, такие как 1,2,3 .. и это нормально, пока я вручную не сделаю
SELECT nextval('sequence_myseq');
Я ожидаю, что при запуске вышеупомянутого из pgadmin (или любого другого клиента) следующий набор значений, сгенерированный генератором jpa / hibernate, должен пропустить значения для столбца id, но это не так. Он по-прежнему генерирует значения без пропуска значений идентификатора. В чем здесь проблема?
РЕДАКТИРОВАТЬ 1 Пока я не получу конкретный ответ, похоже, что hilo
оптимизация не будет работать для нескольких экземпляров. Следующее работает, но оно требует, чтобы вы также установили
increment by 10
в вашем определении последовательности.
@GeneratedValue(generator = "dep_seq_gen")
@SequenceGenerator(
name = "dep_seq_gen",
sequenceName = "sequence_dep",
allocationSize = 10
)