事务与写入
写方法只放 Repository;事务边界在 app/domain,由断言守住。
写在哪
- 写操作(insert / update / delete)的唯一出口是 Repository,Service 不直接持有 Mapper。
- 跨表一致性、多步骤流程放进
domain/handler,AppService 只负责调用。
事务边界
- 事务边界在
app/domain层。 Repository层出现@Transactional会构建失败——细粒度事务会让调用方无法组合。- 事务里不要做远程调用与耗时操作;这类操作放到提交之后。
批量与删除
- 批量写入走统一出口,避免"一半成功一半失败"。
- 删除默认逻辑删除;确需物理删除的场景要显式说明原因并单独评审。
为什么统一出口
写操作分散的直接后果是:审计漏记、事务边界不一致、缓存失效时机各写各的。统一出口之后,这三件事只在一个地方发生。
最后更新 2026-10-09编辑此页 →