Hibernate的事务控制
来源:互联网 发布:上海行知小学怎么样 编辑:程序博客网 时间:2024/04/28 05:45
1. 事务的特性
事务具备原子性(不可再分)、一致性(一种状态到另一种正确的状态)、隔离性(并发执行的事务之间互不影响)和持久性(提交过后就永久存储)4个属性,简称ACID。
2. Session与事务
Hibernate的事务(Transaction对象)通过Session的BeginTransaction()方法显式打开,从底层实现来看,Hibernate事务由TransactionFactory的实例来产生,TransactionFactory是一个事务工厂类的接口。应用程序编程时无须操作TransactionFactoty产生事务,因为在SessionFactory底层已经封装了TransactionFactory。
SessionFactory对象的创建代价很高,它是线程安全的对象,被设计成可以被所有线程共享。通常,SessionFactory会在应用程序启动时创建,应用退出时关闭。
Session对象也是线程安全的,对于单个业务进程、单个工作单元而言Session只被使用一次,创建Session时,并不会立即打开与数据库之间的连接,只有需要进行数据库操作时,Session才会获取JDBC连接。因此打开和关闭Session,并不会对性能造成很大的影响。
由此可见,长Session应用性能影响并不大,只要它没有长时间打开数据库的连接。相反,数据库长事务会导致应用程序无法承载高并发的负荷。
Hibernate的所有持久化访问都必须在Session管理下进行,建议采用每个请求对应一次Session的模式——每个请求表示需要执行一个完整的业务功能。如果是应用程序长事务则可以通过 自动化版本(Hibernate自动乐观并发控制,自动检测实体是否修改)、脱管对象(将脱离对象重新关联)和长生命周期Session(事务提交之后断开和底层的JDBC连接,新的请求到来重新连接上JDBC连接)。
- Hibernate的事务控制
- Hibernate的事务控制
- Hibernate的事务控制机制
- Hibernate第五讲:Hibernate控制的事务
- Hibernate的事务和并发控制
- HIBERNATE两种事务控制的区别
- Hibernate的事务和并发控制
- Hibernate的事务和并发控制
- Hibernate事务和并发控制
- Hibernate事务和并发控制
- java hibernate事务并发控制
- Hibernate事务和并发控制
- Hibernate事务和并发控制
- Hibernate事务与并发控制
- struts2+hibernate+spring 事务控制
- Hibernate事务和并发控制
- Hibernate事务和并发控制
- 使用SPRING+HIBERNATE 控制事务
- 三款主流云笔记软件比较
- ASP.NET初了解(三)-- 内置对象(2)
- note : SetServiceStatus
- github quercus demo备忘
- SDL游戏之路(十一)--按钮制作
- Hibernate的事务控制
- ubuntu 12.04创建本地源
- 合作开发收费系统——临时表解决用户重复登录问题
- Hadoop源码分析之NameNode元数据的存储
- Delphi 之 Windows 7 下 UAC 研究
- Spring IOC容器的实现
- javascript 数组元素排序.mark
- 马上有耐心~ 第0篇- 开天辟地!
- Java多线程学习(三)——Sharing Objects