Hibernate事务的配置
在 Hibernate 中,可以通过代码操作管理事务,例如 Transaction tx=session.beginTransaction();表示开启一个事务;进行持久化操作后,执行 tx.commit();操作提交事务;如果在操作的过程中出现了异常的情况,则执行 tx.rollback();操作回滚事务。
除了使用代码对事务的开启、提交和回滚进行操作以外,还可以在 Hibernate 的配置文件中对事务进行配置。在配置文件中,可以选择使用本地事务或者全局事务,还可以设置事务的隔离级别。其具体的配置方式如下所示:
由于 JTA 的 API 非常笨重,一般只在应用服务器的环境中使用,并且全局事务的使用限制了应用代码的重用性,所以 Hibernate 的事务管理通常会选择使用本地事务。
在上述配置中,还使用了 hibernate.connection.isolation 参数配置事务的隔离级别,并将事务的隔离级别设置为 2,表示读已提交。在 Hibernate 中,使用数字表示不同的隔离级别,它与数据库中的隔离级别相同,具体对应关系如下。
除了使用代码对事务的开启、提交和回滚进行操作以外,还可以在 Hibernate 的配置文件中对事务进行配置。在配置文件中,可以选择使用本地事务或者全局事务,还可以设置事务的隔离级别。其具体的配置方式如下所示:
<!--使用本地事务-->
<property name= "hibernate.current_session_context_class"> thread</property>
<!--使用全局事务-->
<property name= "hibernate.current_session_context_class">jta</property>
<!--设置事务隔离级别-->
<property name= "hibernate.connection.isolation">2</property>
由于 JTA 的 API 非常笨重,一般只在应用服务器的环境中使用,并且全局事务的使用限制了应用代码的重用性,所以 Hibernate 的事务管理通常会选择使用本地事务。
在上述配置中,还使用了 hibernate.connection.isolation 参数配置事务的隔离级别,并将事务的隔离级别设置为 2,表示读已提交。在 Hibernate 中,使用数字表示不同的隔离级别,它与数据库中的隔离级别相同,具体对应关系如下。
- 1—Read uncommitted 读未提交。
- 2—Read committed 读已提交。
- 4—Repeatable read 可重复读。
- 8—Serializable 串行化。
编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。
通俗易懂,深入浅出,一篇文章只讲一个知识点。
文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。
文章不涉及代码,不烧脑细胞,人人都可以学习。
当你决定关注「编程帮」,你已然超越了90%的程序员!

微信扫描二维码关注
所有教程
- socket
- C#
- Python
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC
- 数据结构
- C语言项目案例
- C++
- OpenCV
- Qt教程
- Unity 3D
- UE4
- STL
- Redis
- JavaScript
- PHP
- HBase
- NoSQL
- MongoDB
- MATLAB
- Markdown
- Android教程
- vi命令
- TCP/IP
- Spring MVC
- Mybatis
- Hibernate
- Spring Boot
- Maven
- Spring Cloud
- Linux
- Linux命令
- Shell
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频
优秀文章
- fputs函数,C语言fputs函数及其用法详解
- VC6.0(VC++6.0)使用教程(使用VC6.0编写C语言程序)
- 流迭代器实现文件操作(读取和写入)方法详解
- Docker引擎(Engine)升级教程
- 深度优先生成树和广度优先生成树(详解版)
- 大数据预处理架构和方法简介
- 云计算中心如何存储数据?分布式存储+外部存储+直接存储
- Struts2 ActionContext.getApplication()方法:获取Map类型的application对象
- Hibernate hibernate.use_identifer_rollback属性:重设默认值
- Java接口(Interface)的定义和实现