我们在ear文件中打包了多个war文件。一些战争正在使用纯JDBC,我们希望将hibernate用于新战争(模块)。我们使用的是spring 2.5.6,hibernate 3.0和jboss 4.2服务器。我们有针对transactionmanager的以下配置。
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:MyPool" />
</bean>
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="allowCustomIsolationLevels">
<value>true</value>
</property>
</bean>
它对我们来说很好。
现在我想在一个单独的xml文件中为新模块配置hibernate transactionManger。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:/hibernate.cfg.xml"/>
</bean>
通常我们按照以下方式配置hiberanate事务mangager。
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
但我想使用为JDBC配置定义的相同JtaTransactionManager引用。请帮我配置一下。
答案 0 :(得分:2)
如果你没有使用2阶段提交,你真的不需要JTA。只需配置Hibernate trans mgr,它就能够处理hibernate和jdbc事务。此链接也可能有用[{3}}