将narayana事务管理器与hibernate集成

将narayana事务管理器与hibernate集成,hibernate,jboss,transactions,jta,Hibernate,Jboss,Transactions,Jta,我的独立应用程序已经使用narayana事务管理器与其他XA资源进行JTA事务,现在我也在尝试将其与Hibernate集成。因此,hibernate事务也在JTA Transaction范围内执行- hibernate.cfg.xml <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> <property name="hibernate.tran

我的独立应用程序已经使用narayana事务管理器与其他XA资源进行JTA事务,现在我也在尝试将其与Hibernate集成。因此,hibernate事务也在JTA Transaction范围内执行-

hibernate.cfg.xml

 <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
 <property name="hibernate.transaction.factory_class">
  org.hibernate.transaction.JTATransactionFactory</property>

<property name="hibernate.transaction.manager_lookup_class">
   <!-- org.hibernate.transaction.JBossTransactionManagerLookup -->com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple
</property>

<property name="hibernate.current_session_context_class">jta</property>
下面是我如何开始交易的-

TransactionManager transactionManager     =com.arjuna.ats.jta.TransactionManager.transactionManager();
transactionManager.begin();

Session session = currentSessionContext.currentSession();

session.joinTransaction();
System.out.println("is joined "+session.isJoinedToTransaction());

session.update(obj);
transactionManager.commit();
session.close();
sessionFactory.close();
现在的问题是db仅在调用sessionFactory.close()之后才显示会话的更改 但它不应该在transactionManager.commit()上吗

如何将其配置为在transactionManager.commit()之后进行数据库更新

TransactionManager transactionManager     =com.arjuna.ats.jta.TransactionManager.transactionManager();
transactionManager.begin();

Session session = currentSessionContext.currentSession();

session.joinTransaction();
System.out.println("is joined "+session.isJoinedToTransaction());

session.update(obj);
transactionManager.commit();
session.close();
sessionFactory.close();