知识大全 Hibernate 基于JDBC的事务[3]

Posted

篇首语:种子牢记着雨滴献身的叮嘱,增强了冒尖的勇气。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate 基于JDBC的事务[3]相关的知识,希望对你有一定的参考价值。

Hibernate 基于JDBC的事务[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Java代码

public class ClassA    public void saveUser(User user)    session = sessionFactory openSession();    Transaction tx = session beginTransaction();    session save(user);    tx mit();    session close();            public class ClassB    public void saveOrder(Order order)    session = sessionFactory openSession();    Transaction tx = session beginTransaction();    session save(order);    tx mit();    session close();            public class ClassC    public void save()    ……    UserTransaction tx = new InitialContext() lookup( …… );    ClassA save(user);    ClassB save(order);    tx mit();    ……          public class ClassApublic void saveUser(User user)session = sessionFactory openSession();Transaction tx = session beginTransaction();session save(user);tx mit();session close();public class ClassBpublic void saveOrder(Order order)session = sessionFactory openSession();Transaction tx = session beginTransaction();session save(order);tx mit();session close();public class ClassCpublic void save()……UserTransaction tx = new InitialContext() lookup( …… );ClassA save(user);ClassB save(order);tx mit();……

  这里有两个类ClassA和ClassB 分别提供了两个方法 saveUsersaveOrder 用于保存用户信息和订单信息 在ClassC中 我们接连调用了ClassA saveUser方法和ClassB saveOrder 方法 同时引入了JTA 中的UserTransaction 以实现ClassC save方法中的事务性 问题出现了 ClassA 和ClassB 中分别都调用了Hibernate 的Transaction 功能 在Hibernate 的JTA 封装中 Session beginTransaction 同样也执行了InitialContext lookup方法获取UserTransaction实例 Transaction mit方法同样也调用了UserTransaction mit方法 实际上 这就形成了两个嵌套式的JTA Transaction ClassC 申明了一个事务 而在ClassC 事务周期内 ClassA 和ClassB也企图申明自己的事务 这将导致运行期错误 因此 如果决定采用JTA Transaction 应避免再重复调用Hibernate 的 Transaction功能 上面的代码修改如下

cha138/Article/program/Java/ky/201311/29039

相关参考

知识大全 Hibernate 基于JDBC的事务[1]

Hibernate基于JDBC的事务[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hib

知识大全 Hibernate 基于JDBC的事务[4]

Hibernate基于JDBC的事务[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jav

知识大全 Hibernate 基于JDBC的事务[2]

Hibernate基于JDBC的事务[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这也就

知识大全 Hibernate 基于JDBC的事务[5]

Hibernate基于JDBC的事务[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  实际上

知识大全 JDBC+Hibernate将Blob数据写入Oracle

JDBC+Hibernate将Blob数据写入Oracle  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 hibernate的性能优化

  Hibernate是对JDBC的轻量级封装因此在很多情况下Hibernate的性能比直接使用JDBC存取数据库要低然而通过正确的方法和策略在使用Hibernate的时候还是可以非常接近直接使用JD

知识大全 hibernate的优化-事务处理

  事务概述  事务就是指作为单个逻辑工作单元执行的一组数据操作这些操作要么必须全部成功要么必须全部失败以保证数据的一致性和完整性事务具有ACID属性  原子性自然界最小的事务的内容要么都做要么都不做

知识大全 如何使用Hibernate来管理事务

如何使用Hibernate来管理事务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在数据库应用

知识大全 在Spring中配置Hibernate的事务

在Spring中配置Hibernate的事务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文

知识大全 分析Hibernate的事务处理机制

分析Hibernate的事务处理机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hibern