无法同步数据库状态

恩恩

我有一个Java类ClassA,该类定义了休眠映射。在代码中的某个地方,我需要检索保存在数据库中的此类的所有实例:

public List<ClassA> getAllClassA(){
    Criteria crit = getSession().createCriteria(ClassA.class);
    return crit.list();
}
allA = getAllClassA();

稍后我将删除一些对象,同时更新其他对象:

public void removeItem() {
    Iterator<ClassA> it = allA.iterator();
    while(it.hasNext()){
        ClassA cA = it.next();
        if(cA.hasCondition()){
            dao.remove(cA);
            it.remove();
        }
        else {
            cA.update();
        }
    }
    dao.update(allA);
}
//this is in another class
public void update(List<ClassA> allA){ //dao.update
    for(ClassA cA: allA){
        getSession().saveOrUpdate(cA);
    }
}

发生的情况是数据库已正确更新(并删除了所需的对象),但它还会吐出以下错误:

错误org.hibernate.event.def.AbstractFlushingEventListener.performExecutions:324-无法将数据库状态与会话org.hibernate.StaleStateException同步:批处理更新从更新[0]返回了意外的行数;实际行数:0;预期:1

我知道关于堆栈溢出还有其他类似的问题,但是它们似乎是由不同的情况引起的,在这种情况下没有用。

有任何想法吗?

恩恩

我不确定为什么,但是如果在更新执行删除,问题就消失了:

public void removeItem() {
    Iterator<ClassA> it = allA.iterator();
    ClassA toRemove = null; 
    while(it.hasNext()){
        ClassA cA = it.next();
        if(cA.hasCondition()){
            toRemove = cA;
            it.remove();
        }
        else {
            cA.update();
        }
    }
    dao.update(allA);
    if(toRemove!=null)dao.remove(toRemove);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法同步数据库状态

来自分类Dev

无法将数据库状态与会话同步

来自分类Dev

无法将数据库状态与会话同步-Nhibernate和Rebus并发问题

来自分类Dev

Grails:events.PatchedDefaultFlushEventListener-无法与会话org.hibernate.StaleObjectStateException同步数据库状态

来自分类Dev

将流星复选框状态与数据库同步

来自分类Dev

在erlang中同步外部状态(例如,从数据库)

来自分类Dev

SQLite 数据库获取代码无法同步工作,因此我无法使用设置状态更新我的组件

来自分类Dev

reactjs,在数据库更改或组件安装时与数据库同步状态?

来自分类Dev

由于AttributeError,我无法使用south同步数据库

来自分类Dev

Django CMS无法同步数据库或迁移

来自分类Dev

Django CMS无法同步数据库或迁移

来自分类Dev

无法同步实体框架模型和数据库

来自分类Dev

同步数据库调用

来自分类Dev

Magento数据库同步

来自分类Dev

双向数据库同步

来自分类Dev

Azure数据库同步

来自分类Dev

Redux:将后端数据库与前端应用程序状态树同步

来自分类Dev

节点JS同步数据库调用

来自分类Dev

如何同步数据库和DataGridView

来自分类Dev

sqljocky同步查询数据库

来自分类Dev

节点JS同步数据库调用

来自分类Dev

同步SQL Server数据库

来自分类Dev

通过git同步postgres数据库

来自分类Dev

从SQL Server同步sqlite数据库

来自分类Dev

两个数据库的同步

来自分类Dev

同步SQL Server数据库

来自分类Dev

保持数据库与代码同步

来自分类Dev

保持数据库同步 ef core

来自分类Dev

使用 Promise 的同步数据库查询