代码之家  ›  专栏  ›  技术社区  ›  artemb

Hibernate EntityManager+Jotm:不使用事务

  •  1
  • artemb  · 技术社区  · 15 年前

    我尝试将jotm和hibernateEntityManager集成在一起,以事务方式环境(但容器外)测试EJB。

    我的测试如下:

    1. 启动JOTM
    2. 将jotm的用户事务放入jndi
    3. 创建和配置StandardXdatasource
    4. 将数据源放入JNDI
    5. 配置休眠并创建EMF
    6. 创建一个EM
    7. 开始交易
    8. 在em中加入事务
    9. 存储实体
    10. 验证是否已存储
    11. 回滚事务
    12. 检查数据库中的记录计数
    13. 把一切都拆掉

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

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

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

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

    你知道这是怎么发生的,怎么解决的吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   artemb    15 年前

    我发现我需要提供自己的connectionProvider实现,它将返回xaconnection而不是简单的连接。这样交易似乎可以工作