首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 复习指导 >

在Hibernate中使用JTA事务

2008-12-27 
JTA是描述事务接口的J2EE模型的一部分,开发人员直接使用该接口或者通过J2EE容器使用该接口来确保业务逻辑能够可靠地运行。

    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>

  ……

  下面是一个应用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();

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行