我是靠谱客的博主 孝顺宝马,最近开发中收集的这篇文章主要介绍现象:spring boot jpa 取出数据后修改数据,不调用save方法,数据最终也会更新到数据库,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
问题产生原因:使用JpaRepository find方法,获取到的是数据库的持久化对象,SpringDataJpa在事务完成的时候会自动持久化事务。
SpringDataJpa底层是利用hibernate实现的,可以参考hibernate的实体状态帮助理解。
hibernate实体状态
Hibernate实体状态的定义
1.瞬态:
一个实体通过new操作符创建后,没有和Hibernate的Session建立关系,也没有手动赋值过该实体的持久化标识(持久化标识可以认为是映射表的主键)。此时该实体中任何属性的更新都不会反映到数据库表中。
2.持久化:
当一个实体和Hibernate的Session创建了关系,并获取了持久化标识,而且在Hibernate的Session生命周期内存在。此时针对该实体任何属性的更改都会直接影响到数据库表中一条记录对应字段的更新,即与数据库表同步。
3.脱管:
当一个实体和Hibernate的Session创建了关系,并获取了持久化标识,而此时Hibernate的Session生命周期结束,实体的持久化标识没有被改动过。针对该实体任何属性的修改都不会及时反映到数据库表中。
最后
以上就是孝顺宝马为你收集整理的现象:spring boot jpa 取出数据后修改数据,不调用save方法,数据最终也会更新到数据库的全部内容,希望文章能够帮你解决现象:spring boot jpa 取出数据后修改数据,不调用save方法,数据最终也会更新到数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复