Day*_*Tex 9 concurrency hibernate exception optimistic-concurrency
当我的应用程序出现乐观并发问题时,我的应用程序中抛出StaleObjectStateException而不是OptimisticLockException(因为我读到我应该期待这个).无需发布代码,因为它是最基本的并发问题 - 时间戳列中的错误版本.
我怎么会得到OptimisticLockException,而不是另一个?
使用直接hibernate API时抛出StaleObjectStateException.如果您使用JPA样式的hibernate,则抛出OptimisticLockException.如果这让您感到困惑,请阅读:JPA和Hibernate有什么区别?
使用try catch块来捕获异常:
try {
// your hibernate operation here
} catch (OptimisticLockException e) {
// do something (eg: inform user update is conflicting)
}
Run Code Online (Sandbox Code Playgroud)
值得注意的是,由于其他事务在您有机会之前已更新(因此创建了更新版本)对象,因此会发生OptimisticLockException.在UI应用程序中,通常提示用户是否覆盖/丢弃/合并他/她的对象版本
| 归档时间: |
|
| 查看次数: |
5842 次 |
| 最近记录: |