1

我正在尝试将 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 行)失败。

如您所见,即使我已经回滚了事务,数据库中也有一条记录。似乎根本没有使用的事务和记录进入数据库。

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

4

1 回答 1

0

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

于 2009-09-09T13:29:03.153 回答