oracle delete 可以,updateList却步成功,没有高并发,什么原因?


关注让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。
如果答案让您满意,请采纳、点赞、关注,非常感谢!
.
每日一句正能量,让它带给您好心情:把抱怨的时间,用来做一件小事,更有意义。
.
根据您提供的代码和问题描述,Delete操作成功而UpdateList操作失败,可能的原因如下:
从代码对比来看,UpdateList方法中存在几个关键问题:
164 this.CommitAutoTransaction();
// 缺少:this.CloseAutoSession();
169 if (IsConnect())
170 {
171 this.RollbackAutoTransaction();
172 this.CloseAutoSession();
173 }
// 缺少:非连接状态的会话关闭处理
修改UpdateList方法如下:
public void UpdateList(List<Z1RuKuCheckByItemTab> updateList)
{
try
{
this.OpenAutoSession();
this.BeginAutoTransaction();
foreach (Z1RuKuCheckByItemTab item in updateList)
{
session.Update(item);
}
session.Flush();
this.CommitAutoTransaction();
this.CloseAutoSession(); // 添加会话关闭
}
catch
{
if (IsConnect())
{
this.RollbackAutoTransaction();
this.CloseAutoSession();
}
else
{
this.CloseAutoSession(); // 添加非连接状态的关闭
}
throw;
}
}
foreach (Z1RuKuCheckByItemTab item in updateList)
{
logger.Debug($"Updating item: {item.Id}"); // 添加日志
session.Update(item);
}
catch (Exception ex)
{
// 记录详细异常信息
logger.Error("UpdateList failed", ex);
// 原有的回滚和关闭逻辑
throw;
}
建议先修复代码结构问题,然后通过详细的异常信息来进一步定位具体原因。