在Hibernate中使用JTA事务
来源:优易学  2011-12-26 11:38:44   【优易学:中国教育考试门户网】   资料下载   IT书店
  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();

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训