数据与写入

事务与写入

写方法只放 Repository;事务边界在 app/domain,由断言守住。

写在哪

  • 写操作(insert / update / delete)的唯一出口是 Repository,Service 不直接持有 Mapper。
  • 跨表一致性、多步骤流程放进 domain/handler,AppService 只负责调用。

事务边界

  • 事务边界在 app / domain 层。
  • Repository 层出现 @Transactional 会构建失败——细粒度事务会让调用方无法组合。
  • 事务里不要做远程调用与耗时操作;这类操作放到提交之后。

批量与删除

  • 批量写入走统一出口,避免"一半成功一半失败"。
  • 删除默认逻辑删除;确需物理删除的场景要显式说明原因并单独评审。

为什么统一出口

写操作分散的直接后果是:审计漏记、事务边界不一致、缓存失效时机各写各的。统一出口之后,这三件事只在一个地方发生。

最后更新 2026-10-09编辑此页 →