gpt4 book ai didi

hibernate - StaleObjectStateException 与 OptimisticLockException

转载 作者:行者123 更新时间:2023-12-03 17:38:09 27 4
gpt4 key购买 nike

当我的应用程序中出现乐观并发问题时,我的应用程序中会抛出 StaleObjectStateException 而不是 OptimisticLockException (正如我所读到的,我应该期待这个)。无需发布代码,因为这是最基本的并发问题 - 时间戳列中的版本错误。

我应该如何获得 OptimisticLockException,而不是另一个?

最佳答案

当您使用直接 hibernate API 时会抛出 StaleObjectStateException。如果您使用 JPA 样式的 hibernate ,则会抛出 OptimisticLockException。如果这让您感到困惑,请阅读:What's the difference between JPA and Hibernate?

使用 try catch 块来捕获异常:

try {
// your hibernate operation here
} catch (OptimisticLockException e) {
// do something (eg: inform user update is conflicting)
}

值得注意的是 OptimisticLockException 的发生是由于其他事务在您有机会这样做之前已经更新(因此创建了新版本的)对象。在 UI 应用程序中,通常会提示用户是否覆盖/丢弃/合并他/她的对象版本

关于hibernate - StaleObjectStateException 与 OptimisticLockException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18176932/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com