[Hibernate]事务管理

其他不累述,事务必须具有隔离性,一个事务的执行,另一个事务不能够进行干扰。

如果不考虑隔离性,就会引发一系列问题

各种读问题

脏读--一个事务读到另一个事务未提交的数据

不可重复读--一个事务读到另一个已经提交的update数据,导致多次查询结果不一致

虚读--一个事务读到了另一个事务已经提交的insert数据,导致多次查询结果不一致

事务的隔离级别

通过配置文件hibernate.cfg.xml中的hibernate.connection Isolation=数字来配置

未提交读【1】 Read uncommitted Isolation:以上问题都可能发生

已提交读【2】Read committed Isolation:避免脏读,其他都可能发生

可重复读【3】Repeatable read Isolation:避免脏读和不可重复读,可能发生虚度,也是hibernate里默认的隔离级别

串行化【4】Serializable Isolation:锁表,都可以避免,但是会导致单线程化,因为隔离级别太高,非常耗资源,

<!-- 配置事务隔离级别
	<property name="hibernate.connection.isolation">4</property>
	 -->









猜你喜欢

转载自blog.csdn.net/qq_38277033/article/details/80194066