1

我正在开发一个 Web 应用程序,并决定使用 spring-data 是一个好主意。公平地说,它使生活变得非常容易,并且 DAO 层非常薄。

我遇到的问题与持久化数据有关。当我使用 JPATransactionManager 时,持久性按预期工作。但我需要使用 JTATransactionManager。当我使用它时,事务看起来不错,但休眠刷新似乎与 tx 提交无关

调试 [org.springframework.transaction.jta.JtaTransactionManager] (http--127.0.0.1-8080-2) 使用名称 [com.clubgroups.user.registration.service.impl.UserRegistrationServiceImpl.registerUser] 创建新事务:PROPAGATION_REQUIRED,ISOLATION_DEFAULT ; ''

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (http--127.0.0.1-8080-2) 参与现有事务

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (http--127.0.0.1-8080-2) 启动事务提交

上面是确认事务正在提交的调试消息。但是数据似乎没有刷新到数据库中。

我像这样初始化事务管理器:

@Bean
public JpaTransactionManager transactionManager() {
    JtaTransactionManager transactionManager = new JtaTransactionManager();       

    return transactionManager;
}

任何帮助都会很棒。

4

1 回答 1

1

我对你的 JTA 设置有点困惑,因为它非常不寻常。首先,查看有关如何正确设置 JTA 事务的参考文档。简单地实例化是JtaTransactionManager行不通的,因为您需要UserTransaction通过某种方式从 JNDI 获取。afterPropertiesSet()如果你调用你的方法,你应该会看到一个错误弹出,@Bean因为这将揭示缺少的配置。

于 2012-04-26T07:50:51.650 回答