[ERROR] 2017-03-22 10:09:45.060method:org.quartz.core.JobRunShell.run(JobRunShell.java:208)
nested exception isorg.hibernate.StaleObjectStateException: Row was updated or deleted by anothertransaction (or unsaved-value mapping was incorrect): [com.domain.po.PreApasinfo#2c9a35785af0bf24015af3aac72f0002]
错误原因:
@Id
@GeneratedValue(generator ="system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
private String id;
直接在dto中设置将数据库中查询的到uuid赋值给id
ApasinfoDto apasinfoDto = new ApasinfoDto();
apasinfoDto.setID(info.getUuid());
preApasinfo.setSrcID(apasInfoDto.getId());
相当于修改了uuid,因此报错
在dto类中新加了属性
srcID之后,
apasinfoDto.setSrcID(info.getUuid());
preApasinfo.setSrcID(apasInfoDto.getId());
错误消失。
根本的原因是说hibernate的乐观锁出问题了, 这个部分还在研究,留待慢慢总结。
上边啰啰嗦嗦半天,其实就是uuid生成的值给修改了,虽然“值”没有变,但是版本变了。