Как работает тип поколения 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 ответ:
Для oracle, да, он создает последовательность (вероятно, названную
hibernate_sequence
).Если у вас есть существующие значения в таблице, вы, вероятно, захотите обновить последовательность, чтобы дать вам идентификаторы больше, чем существующие (в противном случае вы скоро получите ошибки первичного ключа).