`
holdbelief
  • 浏览: 705789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Hibernate中使用JTA事务

阅读更多

9.3.5  在Hibernate中使用JTA事务

JTA(Java Transaction API)是事务服务的J2EE解决方案。本质上,它是描述事务接口的J2EE模型的一部分,开发人员直接使用该接口或者通过J2EE容器使用该接口来确保业务逻辑能够可靠地运行。

JTA有3个接口,它们分别是UserTransaction接口、TransactionManager接口和Transaction接口。这些接口共享公共的事物操作,例如commit()和rollback(),但也包含特殊的事务操作,例如suspend()、resume()和enlist(),它们只出现在特定的接口上,以便在实现中允许一定程度的访问控制。

在一个具有多个数据库的系统中,可能一个程序会调用几个数据库中的数据,需要一种分布式事务,或者准备用JTA来管理跨Session的长事务,那么就需要使用JTA事务。下面介绍如何在Hibernate的配置文件中配置JTA事务。在hibernate.properties文件中设置如下(把JTATransactionFactory所在的配置行的注释符“#”取消掉):

hibernate.transaction.factory_class  org.hibernate.transaction.JTATransactionFactory
# hibernate.transaction.factory_class  org.hibernate.transaction.JDBCTransactionFactory
或者在hibernate.cfg.xml文件中配置如下:
<session-factory>
…..
<property name=” hibernate.transaction.factory_class”>
org.hibernate.transaction.JTATransactionFactory
</property>
……
</session-factory>
下面是一个应用JTA事务的例子:
javax.transaction.UserTransaction tx = null;
tx = new initialContext().lookup(” javax.transaction.UserTransaction ”) ;
tx.begin();
Session s1 = sf.openSession();
……
s1.flush();  s1.close();
Session s2 = sf.openSession();
……
s2.flush();  s2.close();
tx.commit();
分享到:
评论

相关推荐

    spring 结合druid和hibernate使用jta配置分布式事务

    4. **配置Hibernate**:配置Hibernate的SessionFactory,指定使用的数据源,并启用JTA事务。 5. **配置Spring事务管理器**:创建Atomikos事务管理器的bean,并配置Spring的PlatformTransactionManager,指定使用...

    第二部分spring+hibernate+jta 分布式事务Demo

    Hibernate支持JTA事务,可以在分布式环境中参与事务处理。 3. **JTA**:Java Transaction API是Java平台的标准接口,用于处理分布式事务。它定义了开始、提交、回滚事务以及管理事务参与者等操作。JTA可以协调多个...

    Jboss4.2.2+Spring2.5.6+hibernate+JTA事务的实现

    "Jboss4.2.2+Spring2.5.6+Hibernate+JTA事务的实现"就是一个典型的例子,它涉及到四个关键的技术栈,即JBoss Application Server 4.2.2、Spring 2.5.6、Hibernate ORM以及Java Transaction API(JTA)。这些技术的...

    jta hibernate spring 集成 代码和说明

    4. **声明式事务管理**:在Spring的XML配置或使用`@Transactional`注解,声明哪些方法需要在事务中运行。这样,Spring会自动管理事务的开始、提交或回滚。 5. **测试和优化**:进行单元测试以确保事务行为符合预期...

    spring+hibernate+jta demo

    5. **配置JTA**:在web.xml中配置Spring的DispatcherServlet,并启用JTA事务管理。例如: ```xml &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener &lt;param-name&gt;...

    详解Hibernate事务处理机制

    配置后,Hibernate会自动检测并使用JTA事务管理器。 #### 三、Hibernate事务配置 ##### 3.1 JDBC事务配置 在`hibernate.properties`文件中,可以通过以下配置指定使用JDBC事务工厂: ```properties hibernate....

    JTA-demo:spring+hibernate+jta+mysql

    "工具"标签可能指的是项目中使用到的各种开发工具,如Spring、Hibernate和JTA等,这些工具是Java企业级开发中的重要组成部分。 【压缩包子文件的文件名称列表】"Two-DB"暗示了这个项目可能涉及两个数据库的交互。在...

    Spring boot+Atomikos+JTA+Hibernate+MySQL实现分布式事务+多数据源(可运行)

    总的来说,这个项目演示了如何在Spring Boot环境中使用Atomikos和JTA来处理多数据源的分布式事务,确保了在多个数据库间的操作一致性。这对于构建高可用、高扩展性的分布式系统至关重要。通过理解和实践这个项目,...

    Hibernate事务和并发控制

    在Hibernate中配置JTA事务,需要在`hibernate.cfg.xml`中设置`transaction.factory_class`为`org.hibernate.transaction.JTATransactionFactory`,并确保应用服务器提供JTA支持。使用JTA事务的代码通常涉及与应用...

    Spring boot+Atomikos+JTA+Hibernate+mybatis+MySQL实现分布式事务+多数据源

    在本案例中,我们使用JPA与Hibernate集成,Hibernate作为JPA的实现,提供了更丰富的功能和性能优化。通过配置Spring Boot,我们可以轻松地将Hibernate整合到应用中,处理数据库的CRUD操作。 同时,MyBatis是一个轻...

    jta.jar jbpm \hibernate

    JTA提供了统一的接口,使得开发者无需关心底层的事务实现细节,可以方便地在不同环境中使用事务服务。jta.jar通常包含了JTA的实现库,供开发者在项目中引用,以支持分布式事务。 其次,jbpm是一个开源的工作流管理...

    Spring3.1+Hibernate4.1+Atomikos3.9+MySql5.1+Tomcat5/6/7实现JTA事务管理

    标题中的“Spring3.1+Hibernate4.1+Atomikos3.9+MySql5.1+Tomcat5/6/7实现JTA事务管理”揭示了一个集成开发环境,用于构建分布式、事务一致性的Java应用程序。这个组合利用了Spring框架的依赖注入和AOP(面向切面...

    Java Web程序设计教程

    10.1.3在hibernate中使用jta事务 210 10.1.4并发控制 211 10.2hibernate缓存 213 10.2.1缓存的工作原理 213 10.2.2应用一级缓存 214 10.2.3应用二级缓存 214 10.2.4应用第三方缓存 216 10.3项目实战——借还...

    Hibernate事务

    如果应用需要在一个事务中操作多个数据库或者涉及 EJB、JMS 等其他服务,就需要更强大的事务管理能力,这时 JTA 就派上用场了。 JTA 事务管理是 Java EE 应用服务器提供的一个标准接口,它可以跨越多个数据源或服务...

    hibernate缓存和事务

    2. **JTA事务**:适合于应用服务器环境,Hibernate可以集成到EJB容器中,利用容器提供的全局事务管理。 ### Hibernate 查询 Hibernate 提供了多种查询方式: 1. **HQL(Hibernate Query Language)**:类似于SQL...

    hibernate5--2.数据持久化及事务

    在EJB、Spring等容器中,可以配置使用JTA事务,无需手动管理事务的开始和结束。 **编程式事务管理:** 在非容器环境中,可以使用try-catch-finally结构来手动控制事务的边界。 **3. 事务的隔离级别** 在并发环境...

Global site tag (gtag.js) - Google Analytics