在春天使用JTATransactionManager?

时间:2014-01-30 12:33:33

标签: java spring hibernate java-ee-7

我试图在spring / hibernate中使用JtaTransactionManager。我有以下配置。

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">  
    <property name="userTransactionName" value="java:comp/UserTransaction"></property>  
</bean> 

现在可以用@Transactional标记我的服务方法吗?或者我需要任何额外的配置才能使用@Transactional?我需要添加 吗?

1 个答案:

答案 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