2017-02-01 5 views
-1

У меня есть файл модели, код которого:Получение HibernateOptimisticLocking Исключение при сохранении объекта

Signature.java

public class Signature implements Serializable { 
    private String id; 
    private int version; 
    private byte[] signatureImage; 
    private String signatureImageName; 
    private String name; 
    private String title; 
    // the getters setters methods 
} 

Вот в этом объекте я получаю signatureImage от JSP с использованием MultipartFile, а затем сохраняя байты в этом поле. Я спасаю этот объект из моего контроллера и daohibernate код выглядит следующим образом:

Session session = getSessionFactory().getCurrentSession(); 
session.saveOrUpdate(signature); 

Сейчас я получаю сообщение об ошибке:

: При обработке запроса: -> HibernateOptimisticLockingFailureException, е :: org.springframework .orm.hibernate4.HibernateOptimisticLockingFailureException: объект класса com.model.Signature с идентификатором []: сбой оптимистической блокировки; вложенное исключение org.hibernate.StaleObjectStateException: Строка была обновлена ​​или удалена другой транзакция (или отображение неспасенного значения было неправильным): [com.model.Signature #]

Теперь это один вызов к saveOrUpdate запросу нет потоков, то и я получаю эту ошибку.

+0

Это как раз то, что он говорит: некоторые другие службы изменили эту запись в базе данных. Поэтому информация о версии не подходит, и ваше обновление отклонено. Вам придется проанализировать, что изменило эту запись. –

+0

SIr, мое обновление работает нормально. Когда я обновляю запись, ошибка не возникает, когда я сохраняю новую запись, тогда она показывает эту ошибку. Фактически, я также выполнил операцию удаления в этой таблице. Так может ли эта операция удаления вызвать эту ошибку? –

+0

Возможно, вы используете первичный ключ в своей новой записи, который уже существует? –

ответ

0

Получил ошибку здесь. Идентификатор, который пришел, не был нулевым, он был «» (пустой).

Так вот почему он пытался обновить запись, а не сохранять.

Таким образом, изменив значение id на нуль, он сохранил запись.

Thanks

 Смежные вопросы

  • Нет связанных вопросов^_^