哪个SessionFactory应该用于transactionManager?

          PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_SUPPORTS,readOnly    

我有2个数据源HRappsdao和projectdao,两个都使用不同的sessionFactory。 在这种情况下,我的transactionmanager应该使用哪个sessionfactory? (hrappsdao或projectdao)?

editted

   //my HRappsdao using same    

实际上,您没有显示您的事务管理器的配置,所以我不确定您当前使用的是什么,但引用文档:

JTA(通常通过JtaTransactionManager )是访问同一事务中的多个事务资源所必需的。

在Spring 2.5中,考虑使用“ new ” 配置元素来自动检测基于JTA的基础事务平台(适用于大多数应用服务器)。 见第9.8章。 特定于应用程序服务器的集成,以获取更多详细信

如果您使用的是旧版本的Spring,则需要手动配置JtaTransactionManager 。 这将需要您的应用程序服务器的一些知识,因为JTA TransactionManager的JNDI位置特定于每个J2EE服务器。

请提供更多详细信息(如果您需要更多指导,请使用Spring的版本和您正在使用的应用程序服务器)。


更新:正如我所说,当使用多个数据源时,您需要使用JtaTransactionManager而不是HibernateTransactionManager (请参阅javadoc)。 如果您使用的是Spring 2.5,请按以下方式更新Spring配置:

     ...  

请注意,您需要使用Tomcat或Jetty等JOTM 。 您应该考虑转移到JBoss或Glassfish等J2EE应用服务器。