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

单个EntityManager(Hibernate)能否参与多个并发事务?

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

    一个EntityManager是否可以平滑地参与多个并发事务?

    嗯,不是同时发生的。类似:

    1. 启动TX 1
    2. 在Tx1做一些事情
    3. 启动TX 2
    4. 在Tx2做一些事情
    5. 提交TX 2
    6. 加入TX 1后
    7. 在Tx1做一些事情
    8. 提交TX 1

    一步接一步,不重叠。

    1 回复  |  直到 15 年前
        1
  •  1
  •   ChssPly76    15 年前

    分开 交易?不,它不能。

    正在尝试呼叫 EntityTransaction.begin() 在当前活动的事务上(这是您必须做的,直接或间接的)将导致 IllegalStateException 被扔掉。

    工作单元/事务范围概念在 Hibernate EntityManager manual .