Hibernate之事务管理

Hibernate是JDBC的轻量级封装,本身不具备事务管理能力。在事务管理层,Hibernate将其委托给底层的JDBC或JTA,以实现事务的管理和调度;

Hibernate默认的事务处理机制基于JDBC Transaction,我们也可以通过配置文件设定为JTA作为事务处理机制;

 

基于JDBC的事务管理

   将事务交给jdbc,是最简单的实现方式,hibernate对于jdbc事务的封装也很简单;

看下在Hibernate中操作数据:

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
                ........
		session.getTransaction().commit();

 从JDBC层面而言,上面代码实际对应着:

 

		Connection dbconn = getConn();
		dbconn.setAutoCommit(false);
		dbconn.commit();
 

hibernate没有作更多的事情,也没有事情可做,只是将JDBC代码封装下而已;

JDBC事务由Connection管理,事务管理实际上是在JDBC Connection中实现,事务周期限于Connection的生命周期之内,同样,对于基于JDBC Transaction的Hibernate事务管理机制而言,事务管理在Session所依托的JDBC Connection中实现,事务周期限于在session的生命周期。

 

基于JTA的事务管理

使用JTA作为事务管理实现,需要在hibernate.cfg.xml中添加一条属性:

<hibernate-configuration>
     <session-factory>
           ..........
         <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
           .............
    </session-factory>
</hibernate-configuration>

 

JTA提供了夸session的事务管理能力,这一点与JDBC Transaction最大的差异;

JTA事务管理则由JTA容器实现,JTA容器对当前加入的事务的众多Connection进行调度,实现其事务性要求,JTA的事务周期可横跨多个JDBC Connection生命周期,同样对于基于JTA事务的Hibernate而言,JTA事务横跨可多个session;

 

Spring与Hibernate整合下的事务管理(MethodInterceptor)实现指南 Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的容器框架。它支持事务管理,能够简化企业级应用的开发。Hibernate是一个对象关系映射(ORM)工具,它封装了JDBC,并提供了对象持久化的能力。当Spring和Hibernate结合时,能够提供一个强大且灵活的数据持久化解决方案。AOP(面向切面编程)是一种编程范式,其目标是将交叉关注点从业务逻辑中分离出来,以提高模块化。 阅读详情

相关推荐

A Mathematical Framework for Transformer Circuits—(二)

transformer数学理论框架

qq_42208244的博客 758

Hibernate 事务管理

一. 事务包含四个基本特性:简称ACID: 1. Atomic(原子性):全部成功或全部失败; 2. Consistency(一致性):只有合法数据才能被写入,不合法则回滚到最初状态; 3. Isolation(隔离性):允许并发,并发的事务相互独立; 4. Durability(持久性):事务结束后,结果能保存; 二. 数据库事务管理隔离等级 数据库操作过程中经常出现三种不确

shen516的专栏 4226

SAP公司间采购后台配置及前台操作详解

公司间采购后台配置及前台操作详解 SAP 实施中公司间交易几乎每个项目都会有此业务需求,比如内地很多公司都会在香港设置贸易型子公司。通过香港公司接单,然后转内地公司生产,或内地公司通过香港公司采购进口原材料,这些业务必然会涉及到公司间交易,下面我将详细说明下SAP是如何实现这种业务场景的,供大家参考。 配置前必须前台先创建公司间供应商主数据和客户主数据 1. 创建相应的客户主数据 功能说明 公司间...

weixin_40672823的博客 1万+

Hibernate的事务管理

Hibernate的事务管理 事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰。作为一名软件设计师,必须了解事务并合理利用,以确保数据库保存正确、完整的数据。数据库向用户提供保存当前程序状态的方法,叫事务提交(commit);当事务执行过程中,使数据库忽略当前的状态并回到前面保存的状态的方法叫事...

weiwjacsdn的博客 3836

Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法)

使用Python、Selenium实现问卷星自动填写,内含适配个人问卷的方法。

DaenCode的博客 3837

扩散模型中的UNET

一、为什么UNET模型可以用于去噪网络 二、扩散模型中的UNET是一个条件去噪网络,怎么实现的 三、UNET用于分割和用去去噪的区别

m0_37737957的博客 3817

Hibernate事务管理

事务只是一个工作单位(单元)。 在这种情况下,如果一个步骤失败,则整个事务失败(称为原子性)。 ACID属性(原子性,一致性,隔离性和持久性)可以描述事务。 Hibernate中的事务接口 在hibernate框架中,我们有Transaction接口来定义工作单元。 它维护了事务实现(JTA,JDBC)的抽象。 事务与Session相关联,并通过调用session.begin...

weixin_40050195的博客 230

三菱FX5U-PLC建立CClink的IO通讯

最新需要用三菱的FX5U的PLC搭建一个CClink通讯,PLC做主站,控制CClink从站的IO,下面2个输入模块AJ65SBTB1-32D,两个输出模块AJ65SBTB1-32T。3、在右侧的部件,选择网络模块:FX5-CCL-MS,CC-link主站模块。依次把加入两个AJ65SBTB1-32D,两个AJ65SBTB1-32T。7、基本设置,网络配置设置,链路刷新设置,设置好下面参数,应用。6、基本设置,网络配置设置,CC-Link配置设置。8、部件选择,模块,右键,添加模块标签。

wzz418550729的博客 1001

Hibernate(53)Hibernate的事务管理如何实现?

Hibernate事务管理提供程序化和声明式两种方式确保数据一致性。程序化事务通过代码显式控制事务边界,需手动管理Session和Transaction对象,适用于需要精细控制的场景。声明式事务则通过注解或配置自动管理,更简洁高效,常用于Spring框架集成。示例展示了程序化事务的完整实现流程,包括Hibernate配置、实体类定义以及增删改操作的事务处理。两种方式都能保证数据库操作的原子性,开发者可根据项目需求选择合适的事务管理策略。

qq_43012298的博客 515

高级用法:LangChain 安全防护(Guardrails)

在调用开始时校验请求,可做关键词过滤、身份校验、限流等。= "human":return {}],# 使用],= "human":return {}],

Long_像风一样自由 316

hibernate 控制事务回滚_Hibernate事务管理

事务只是一个工作单位(单元)。 在这种情况下,如果一个步骤失败,则整个事务失败(称为原子性)。 ACID属性(原子性,一致性,隔离性和持久性)可以描述事务。Hibernate中的事务接口在hibernate框架中,我们有Transaction接口来定义工作单元。 它维护了事务实现(JTA,JDBC)的抽象。事务与Session相关联,并通过调用session.beginTransaction()实...

weixin_35850219的博客 691

新能源汽车动力总成研发测试技术全景深度报告(2025版)

本文所有企业案例数据均来自上市公司财报、工信部备案信息及权威媒体报道,技术参数经第三方检测报告交叉验证。研发测试人员能力矩阵重构(T型人才进阶路径)[10] 全球动力总成市场2035年预测报告。[9] NI电动汽车HIL测试架构技术文档。[3] 东风汽车智能化研发体系深度报告。[5] 混合动力测功机发明专利技术细节。[1] 领克动力总成试验中心技术解析。[7] 新能源汽车产业迭代趋势白皮书。测试架构师-数字工程。测试架构师-安全合规。测试架构师-人工智能。

优快云-新能源汽车研发测试专业博主 777

hibernate-事务管理

Hibernate 是JDBC 的轻量级封装,本身并不具备事务管理能力。在事务管理层,  Hibernate将其委托给底层的JDBC或者JTA,以实现事务管理和调度功能。  Hibernate的默认事务处理机制基于JDBC Transaction。我们也可以通过配置文  件设定采用JTA作为事务管理实现:  Java代码         ……   "hibern

落天雨、、 1096

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

hibernate事务管理

Hibernate 是JDBC 的轻量级封装,本身并不具备事务管理能力。在事务管理层, Hibernate将其委托给底层的JDBC或者JTA,以实现事务管理和调度功能。 Hibernate的默认事务处理机制基于JDBC Transaction。我们也可以通过配置文 件设定采用JTA作为事务管理实现:  Java代码         ……   "hibernat

loonie51的专栏 476

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

spring hibernate 事务管理 OpenSessionInViewFilter

spring 配置文件的问题。关键是细心。HibernateDaoSupport的子类在保存实体时抛出InvalidDataAccessApiUsageException异常,异常堆栈如下:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowe

鱼头的记录 1327

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 初识---事务管理
下一篇: Hibenate之悲观锁(Pessimistic Locking)
keithJava
博客等级 码龄16年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值