保存对象时获取HibernateOptimisticLocking异常

时间:2017-02-01 08:16:30

标签: java hibernate spring-mvc hibernate-mapping

我有一个模型文件,其代码为:

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,e :: org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException:类com.model.Signature的对象,标识符为[]:乐观锁定失败;嵌套异常是org.hibernate.StaleObjectStateException:Row被另一个事务更新或删除(或unsaved-value映射不正确):[com.model.Signature#]

现在这是对saveOrUpdate查询的单次调用没有线程,然后我也收到此错误。

1 个答案:

答案 0 :(得分:0)

在这里得到错误。即将到来的id并非空,它是"" (空)。

这就是为什么它试图更新记录而不是保存。

因此,通过将id的值更改为null,它保存了记录。

由于