Если вы хотите, чтобы приложение назначало идентификаторы, в отличие от того, чтобы Hibernate генерировал их, вы можете использовать назначенный генератор. Этот специальный генератор использует значение идентификатора, уже присвоенное свойству идентификатора объекта. Генератор используется, когда первичный ключ является естественным ключом, а не суррогатным ключом. Это поведение по умолчанию, если вы не указали элемент.
Назначенный генератор заставляет Hibernate использовать unsaved-value = "undefined". Это вынуждает Hibernate перейти в базу данных, чтобы определить, является ли экземпляр временным или отсоединенным, если только нет свойства version или timestamp или вы не определите Interceptor.isUnsaved ().