我试图在spring / hibernate中使用JtaTransactionManager
。我有以下配置。
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransactionName" value="java:comp/UserTransaction"></property>
</bean>
现在可以用@Transactional
标记我的服务方法吗?或者我需要任何额外的配置才能使用@Transactional
?我需要添加 吗?
答案 0 :(得分:0)
注释只不过是元数据,所以只在那里拍一个注释并期望它神奇地工作是不会发生的。
要使@Transactional
工作,您需要告诉spring您要使用注释来驱动您的交易。为此,将<tx:annotation-driven />
标记添加到您的配置中。
然而,可能不会全部需要,因为您还需要为JTA正确配置hibernate。
小提示而不是定义bean,使用较短的<tx:jta-transaction-manager />
。这将检测您正在运行的应用服务器,并为您配置适当的事务管理器。有关详细信息,请参阅http://docs.spring.io/spring/docs/current/spring-framework-reference/html/transaction.html#transaction-application-server-integration。