Hibernate管理对象三种状态:
(1)瞬时状态
1、没有ID
2、对象没有与Session关联
(2)持久化状态
1、有ID
2、与Session有关联
(3) 游离状态
1、有ID
2、与Session没有关联
Hibernate事务配置_hibernate

一级缓存:
Session对象中包含一个可以存储对象的容器(集合).这个集合就是Hibernate的一级缓存.
作用:提高效率
Hibernate事务配置_hibernate_02
Hibernate事务配置
事务的特性:
a 原子性: 强调事务的不可分割.
c 一致性: 事务的执行的前后数据的完整性保持一致.
i 隔离性: 一个事务执行的过程中,不应该受到其他事务的干扰
d 持久性: 事务一旦结束,数据就持久到数据库
事务并发产生的问题:
脏读: 读到了别人没提交的数据
不可重复读: 两次连续读取.结果不一致
幻|虚读: 整表的操作.结果与预期不符.
数据库隔离级别:
1 读未提交 脏读|不可|虚读
2 读已提交 不可|虚读
4 可重复读 虚读 (mysql默认)
8 串行化 没有问题.效率低
配置隔离级别:
1|2|4|8
在项目中事务的应用

1.可以使用Transaction对象控制事务的开启|提交|回滚
2.事务应在Service层打开.包裹Service方法.
3.确保Service中操作事务的Session与Dao层操作数据的Session应为同一个Session对象
4.使用getCurrentSession方法获得与当前线程绑定的Session对象.
注意:调用getCurrentSession方法,必须加上这条配置.不加报错!!!
Hibernate事务配置_数据_03
注意: getCurrentSession方法.在事务提交时会自动关闭Session.一定不要手动进行关闭.

更多java、大数据学习面试资料,请扫码关注我的公众号:
Hibernate事务配置_数据_04