其他不累述,事务必须具有隔离性,一个事务的执行,另一个事务不能够进行干扰。
如果不考虑隔离性,就会引发一系列问题
各种读问题
脏读--一个事务读到另一个事务未提交的数据
不可重复读--一个事务读到另一个已经提交的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> -->