Hibernate持久化的实现——事务管理(ACID)

(1)   数据库事务管理隔离等级
事务隔离:通过某种机制,在并行的多个事务之间进行分隔,使每个事务在其执行过程中保持独立(如同当前只有此事务单独运行)。
Hibernate中的事务隔离依赖于底层数据库提供的事务隔离机制。
数据操作过程中可能出现的3种不确定情况:
脏读取:一个事务读取了另一个并行事务未提交的数据。
不可重复读取:一个事务再次读取之前曾读取过的数据时,发现该数据已经被另一个已提交的事务修改。
虚读:一个事务重新执行一个查询,返回一套符合查询条件的纪录,但这些记录中包含了因为其它最近提交的事务而产生的新纪录。
4个事务隔离等级:
Read Uncommitted,Read Committed,Repeatable Read,Serializable
(2)   Hibernate事务管理
---Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力。在事务管理层,Hibernate将其委托给底层的JDBC或JTA,以实现事务的管理和调度。
(3)   基于JDBC的事务管理---如同JDBC
(4)   基于JTA的事务管理---提供了跨Session的事务管理能力。JTA事务管理由JTA容器实现,JTA容器对当前加入事务的众多 Connection进行调度,实现其事务性要求。参与JTA事务的Connection需避免对事务管理进行干涉。也就是说如果采用JTA Transaction,就不应该再调用Hibernate的Transaction功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值