【发布时间】:2011-07-07 08:41:13
【问题描述】:
我正在使用 Eclipse Link 实现,但也许这也与 Hibernate 相关。 在某个时候,我打电话给:
em.lock(entity, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
我认为这是一个原子操作。
令人惊讶的是 - 在 @Version 字段上设置断点后,似乎有很多对 entity._persistence_get 和 entity._persistence_set 的调用。
显然 - 可以使用调试器到达同一点,使用两个浏览器,并在线程仍在运行这些隐藏功能时在线程之间切换。完成后 - 两个线程都不可能稍后刷新/提交。
在不处于发布模式时是否会发生这种变化,或者仅仅是因为调试器?
问候, 丹尼尔
【问题讨论】:
-
我不确定我是否理解您的问题。你说的原子是什么意思?一个附加的实体不应该在多个线程中使用。
-
Atomic=操作期间不允许上下文切换。
标签: hibernate jpa ejb-3.0 eclipselink