2014-01-30 99 views
0

我試圖在spring/hibernate中使用JtaTransactionManager。我有以下配置。在春季使用JTATransactionManager?

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

現在我可以使用@Transactional來標記我的服務方式嗎?或者我需要任何額外的配置來使用@Transactional?我需要添加

回答

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

+0

Deinum,可否請您提供一些春季配置示例,如果您有方便的配置 – user755806

+0

什麼?如何配置hibernate取決於你的JTA實現/ appserver。 –

+0

我在tomcat中部署應用程序。但它必須做jndi在另一個JBoss應用程序服務器上查找UserTransaction。 – user755806