删除

把批量删除收口到持久化与事务边界

用户在列表中选中多条记录后点击删除,请求返回 HTTP 500。数据库最早错误来自一条拼接明细文本的分组查询,这条查询原本服务于页面展示。删除操作因此继承了一个自身并不需要的读取依赖。

问题还跨越了多个层次:浏览器逐条发起删除请求,控制层没有稳定保留服务结果,服务层先加载扩展展示对象,再定位需要删除的持久化记录。后续步骤一旦失败,页面很难确认整批选择究竟已提交、部分执行,还是完整回滚。

修复为破坏性操作建立了一个清晰边界:服务端一次接收整批目标,读取精确的持久化模型,先校验全部记录,再在同一事务内按依赖顺序删除,最后把真实结果返回页面。

沿最早错误定位,再继续检查调用链

数据库日志记录了聚合投 …