欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
普元 EOS Platform7.6 启用乐观锁,调用deleteEntityBatch(),删除过程报错:
Caused by: ErrCode: 24000045
Message: 删除一批记录失败. 事务回滚.
at com.eos.foundation.database.DatabaseUtil.deleteEntityBatch(DatabaseUtil.java:475)
......
at com.primeton.engine.core.impl.process.BLProxy.invoke(BLProxy.java:223)
at com.primeton.engine.component.impl.OperationAccessor.invoke(OperationAccessor.java:112)
at com.primeton.engine.component.impl.OperationAccessor.invoke(OperationAccessor.java:80)
at com.primeton.ext.engine.component.Operation.invoke(Operation.java:100)
at com.primeton.engine.component.impl.LogicCompoment.invoke(LogicCompoment.java:183)
......
... 40 more
Caused by: ErrCode: 14101011
Message: 不存在的行(Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.primeton.eos.newdataset.test#66])
at com.primeton.das.entity.impl.exception.DASExceptionHelper.convert(DASExceptionHelper.java:132)
at com.primeton.das.entity.impl.DASSessionImpl.deleteEntityBatch(DASSessionImpl.java:354)
at com.eos.foundation.database.DatabaseUtil.deleteEntityBatch(DatabaseUtil.java:469)
... 60 more
Caused by: com.primeton.das.entity.impl.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction
(or unsaved-value mapping was incorrect): [com.primeton.eos.newdataset.test#66]
一条记录删除失败,整个事务回滚,和hibernate的两种异常模式有关:
1、乐观锁抛异常模式,批量操作异常中断;
2、不抛出异常模式下,批量操作会忽略异常,不会中断。
若是不希望出现异常的时候,循环操作终止,可考虑自行封装批量删除功能