【问题标题】:Spring Data, Hibernate 4.1.1 and Spring JTA Transaction ManagerSpring Data、Hibernate 4.1.1 和 Spring JTA 事务管理器
【发布时间】:2012-04-25 21:40:26
【问题描述】:

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

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

DEBUG [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;
}

任何帮助都会很棒。

【问题讨论】:

  • 也许你在某处放了一个只读标志?还是您在某处将 FlushMode 更改为 MANUAL?

标签: java spring hibernate jta spring-data


【解决方案1】:

我对您的 JTA 设置感到有些困惑,因为它非常不寻常。首先,请查看the reference documentation,了解如何正确设置 JTA 事务。简单地实例化JtaTransactionManager 是行不通的,因为您需要通过某种方式从JNDI 获取UserTransaction。如果您在 @Bean 方法中调用 afterPropertiesSet(),您应该会看到弹出错误,因为这将揭示缺少的配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2014-02-22
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多