gpt4 book ai didi

java - 如何从 java.sql.SQLException : Concurrent Modification 重试/恢复

转载 作者:行者123 更新时间:2023-12-02 07:54:37 26 4
gpt4 key购买 nike

在 GAE 上使用 JDO,我使用一个简单的数据库事务代码块,如下所示。

从抛出的 java.sql.SQLException:并发修改中重试/恢复的好方法是什么?

私有(private)最终提供商 pmp; ...

PersistenceManager pm = pmp.get(); 尝试 { pm.currentTransaction().begin();

MyObject myObject= pm.getObjectById(MyObject.class, id);

pm.currentTransaction().commit();

}终于{

if (pm.currentTransaction().isActive()) { log.severe( this.getClass().getName() + "捕获数据库异常。"); pm.currentTransaction().rollback(); } }

最佳答案

这个异常实际上是在哪里抛出的?您确定 commit() 和 isActive() 的语义吗? commit() 可以自动创建一个新事务,使事务始终处于 Activity 状态。

我的另一个猜测是,这是一个并发访问的单例 bean,它们最终都在同一个事务中,其他查询同时修改您请求的对象。

关于java - 如何从 java.sql.SQLException : Concurrent Modification 重试/恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187785/

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