使用spring data jpa保存两次entity

yanchao90 发布于 2015/08/05 15:43
阅读 6K+
收藏 0

原来是希望第一次保存的时候获取到id,然后根据id生成一个内部编码,再回写回数据库。但是要在一个事务里完成。

结果报错了,提示:
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)

各位给点建议

以下是问题补充:

@yanchao90:补充一下,我用了@Version注解乐观锁 (2015/08/05 16:08)
加载中
0
Barret_Guo
Barret_Guo
findone之后要更新对象的值才可以 否则乐观锁会认为是执行了2次  所以报错 。
yanchao90
yanchao90
是说要用EntityManager refresh一下吗
0
我去又空指针
我去又空指针
看代码怎么写的
0
NotFoundException
NotFoundException
该评论暂时无法显示,详情咨询 QQ 群:点此入群
yanchao90
yanchao90
不是你说的这个问题,我是save以后,再重新findOne,再对findOne返回的对象进行修改,再save 依然有问题
0
Barret_Guo
Barret_Guo
这个是合理的啊    同一个对象保存两次???是什么道理    
yanchao90
yanchao90
把id转换成一个字符串,需要先insert进数据库才有id
0
我去又空指针
我去又空指针
第一次用saveAndFlush试下?
0
yanchao90
yanchao90
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
无声的呼唤
无声的呼唤
jpa 要用merge,persistent之类的吧!
yanchao90
yanchao90
spring data jpa的CrudRepository.save已经替你实现了merge和persist
0
小斯
小斯
该评论暂时无法显示,详情咨询 QQ 群:点此入群
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部