【问题标题】:Hibernate EntityManager + JOTM: transactions are not usedHibernate EntityManager + JOTM:不使用事务
【发布时间】:2010-11-23 09:00:50
【问题描述】:

我正在尝试将 JOTM 和 Hibernate EntityManager 集成在一起,以在事务方式环境中测试我的 EJB,但在容器外。

我的测试如下所示:

  1. 启动 JOTM
  2. 将 JOTM 的 UserTransaction 放入 JNDI 中
  3. 创建和配置 StandardXADataSource
  4. 将DataSource放入JNDI
  5. 配置休眠并创建 EMF
  6. 创建一个 EM
  7. 开始交易
  8. 在 EM 中加入交易
  9. 存储实体
  10. 验证是否已存储
  11. 回滚交易
  12. 检查数据库的记录数
  13. 撕掉所有东西

我的代码如下所示: http://pastebin.com/m22a9f6b

这是日志输出: http://pastebin.com/m6da9383a

测试在第 12 步(第 121 行)失败。

如您所见,即使我已经回滚了事务,数据库中也有一条记录。看起来像是根本没有使用的事务,并且记录进入了数据库。

您有什么想法是如何发生的以及如何解决它?

【问题讨论】:

    标签: hibernate jta jotm hibernate-entitymanager


    【解决方案1】:

    我发现我需要提供我自己的 ConnectionProvider 实现,它会返回 XAConnection 而不是简单的连接。这种方式交易似乎有效

    【讨论】:

    猜你喜欢
    • 2012-05-24
    • 2015-09-16
    • 2019-01-20
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多