У меня есть объект гибернации с идентификатором, настроенным как
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
Создание новых элементов работает нормально при первом запуске. Но если я перезапущу свое приложение и верну записи, в следующий раз, когда я попытаюсь сохранить этот объект, спящий режим попытается использовать тот же идентификатор, сгенерированный, когда приложение не было перезапущено.
Я получаю сообщение об ошибке ниже, и при запуске с параметром трассировки я смог увидеть, что идентификатор используется повторно.
* Спящий режим: вставьте в org_myEntity (entitiyJID, entitityName, id) значения (?, ?, ?) org.hibernate.util.JDBCExceptionReporter
Ошибка SQL: 20000, SQLState: 23505 org.hibernate.util.JDBCExceptionReporter Оператор был прерван потому что это привело бы к дублированию значения ключа в ограничении уникальности или первичного ключа или индексе уникальности, идентифицированном "SQL120725164357680", определенном в "TABLE_NAME". org.hibernate.event.def.AbstractFlushingEventListener
Не удалось синхронизировать состояние базы данных с сеансом org.hibernate.exception.ConstraintViolationException: не удалось*
Кстати, я использую базу данных hibernate 3.3.2.GA, javax.persistance 2.0.0 и Derby 10.5.1.
Кто-нибудь знает, что может быть не так в моем поколении и как я могу это исправить?