Как работает тип поколения hibernate.Автоматическая работа в Oracle?


Использование oracle / JPA Hibernate. Я импортировал схему, которая имеет значения в таблице student, следующим образом. Вот пример

100
85
80
70
1

У меня ниже код:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id;
Теперь, когда новый студент вставлен, он не вставляет максимальное значение, т. е. 101 (max + 1). Но вставка некоторых доступных значений между ними например, 90. Я не уверен, как это возможно ?

Делает ли Hibernate внутренне создать некоторую последовательность базы данных и использовать затем использовать последнее созданное значение плюс 1

1 4

1 ответ:

Для oracle, да, он создает последовательность (вероятно, названную hibernate_sequence).

Если у вас есть существующие значения в таблице, вы, вероятно, захотите обновить последовательность, чтобы дать вам идентификаторы больше, чем существующие (в противном случае вы скоро получите ошибки первичного ключа).