Я получил следующую ошибку при вызове entityManager.merge для моего объекта-сущности
Если вы хотите полностью понять, что здесь происходит, активируйте ведение журнала, чтобы точно увидеть, что в результатев RollbackException
(подозреваю, «плохой» SQL).
Обратите внимание, что вы не получаете OptimisticLockException
, я думаю, что Hibernate каким-то образом запутывается версией NULL
.Я на самом деле не копал проблему и не могу объяснить ее в деталях, но кажется, что Hibernate даже не генерирует ожидаемый оператор UPDATE
для слияния.
Почему не может @Версия столбца будет NULL?Кто-нибудь еще сталкивался с этой проблемой?Спасибо.
Как я уже писал, я не могу дать точную причину, но у меня возникает соблазн ответить: потому что это не значение, ожидаемое Hibernate.Hibernate начинался бы с 0
в качестве начального значения для столбца версии, поэтому я хотел бы учитывать ожидания Hibernate и установить его в качестве значения по умолчанию.
Если вы хотите понять, почему установка NULL
в качестве начального значениявызывая проблемы, вам придется отлаживать код Hibernate.Но, честно говоря, это звучит как пустая трата времени: поскольку вы используете Hibernate, просто уважайте / имитируйте поведение Hibernate, обходя API Hibernate.