侧边栏壁纸
博主头像
丛庆

没事儿写代码,有事写代码。email:1024@cong.zone

  • 累计撰写 116 篇文章
  • 累计创建 97 个标签
  • 累计收到 4 条评论

【Java】Jpa采坑路

丛庆
2021-11-21 / 0 评论 / 1 点赞 / 363 阅读 / 357 字 / 正在检测是否收录...
温馨提示:
部分资料和图片来源于网络,如有危害到您的利益请与我联系删除,1024@cong.zone。

坑一 **Jpa 更改对象属性会被自动保存到数据库

环境
springboot + jpa + mysql
现象
例如保存一个用户 user
在方法内通过Jpa提供的 JpaRepository类调用 CrudRepository提供的save(S entity)
方法保存后得到返回的对象 user
情况1.修改user对象的属性,方法后续还有对数据库的操作
则该user对象的更改会被自动提交到数据库进行保存
情况2.修改user对象的属性,方法后续没有对数据库的操作
则该user对象的更改不会被自动提交到数据库
网上都说是hibernate的返回对象处于托管状态,有事务参与,但和我的这种情况不太符合,并不是修改后就一定会提交到数据库,
而且对数据库的多次操作,也并没有设置使他们都处于同一个事务,没有加任何事务
解决办法:
将返回值复制到新的对象进行操作

1

评论区