JTA事务:在Hibernate中使用JTA事务

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  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();

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答