Spring JTA事务管理器问题

| 我们正在使用下面的Spring bean使用jboss托管的EntityMangerFactory
<jee:jndi-lookup id=\"entityManagerFactory\" jndi-name=\"persistence-units/myPU\"/>
现在在我们的spring bean中,我们使用@PersistenceContext来获取entitymanager,它可以正常工作。我想要的是如何告诉spring抓住jbos jta服务提供的事务管理器并在我的dao中使用它? 如果我像下面那样定义txmanager,那么spring可以通过@Transaction注释来控制转换的控制吗?
<bean id=\"txManager\" class=\"org.springframework.transaction.jta.JtaTransactionManager\">
      <property name=\"transactionManagerName\" value=\"java:/TransactionManager\"/>
    <property name=\"userTransactionName\" value=\"UserTransaction\"/>
</bean> 
如果是这样,那么spring什么时候提交事务并回滚它? 谢谢     
已邀请:
几乎-您应该将其称为
transactionManager
而不是
txManager
。您可以覆盖它要查找的名称,但是遵循约定更容易。 另外,“ 4”通常会自动检测各种JNDI名称,您不需要手动指定它们。 更好的是,根本不声明
JtaTransactionManager
,只使用
<tx:jta-transaction-manager/>
,Spring应该做正确的事情。 因此,您需要做的只是:
<context:annotation-driven/>
<tx:jta-transaction-manager/> 
一旦到位,所有带有ѭ8注释的bean的事务边界都将由Spring管理,例如当注释方法退出时,事务已提交或回滚(请参阅文档)。     

要回复问题请先登录注册