Spring文档:DDD主导Spring Data JDBC的实现
💡
原文中文,约1100字,阅读约需3分钟。
📝
内容提要
Spring Data模块灵感来自Domain Driven Design中的“repository”、“aggregate”和“aggregate root”概念。Spring Data JDBC通过聚合和聚合根的概念来操作实体,每个聚合根有一个Repository。Spring Data JDBC的目标是简化概念,通过简单模型将实体映射到表。
🎯
关键要点
- Spring Data模块灵感来自Domain Driven Design中的概念,如'repository'、'aggregate'和'aggregate root'。
- 聚合是一组实体,确保在原子更改之间保持一致性,例如Order和OrderItems。
- 每个聚合只有一个聚合根,操作只能通过聚合根的方法进行。
- 存储库是对持久性存储的抽象,每个聚合根应有一个Repository。
- Spring Data JDBC假设只有聚合具有指向存储聚合的非根实体的外键。
- 从聚合根引用的实体在当前实现中被删除并重新创建。
- Spring Data JDBC的目标是简化概念,通过简单模型将实体映射到表。
- 与JPA相比,Spring Data JDBC不进行延迟加载或缓存,加载实体时会立即执行SQL语句。
- 保存实体时,实体会被保存,不进行脏跟踪或会话管理。
- Spring Data JDBC对使用注释自定义策略的支持非常有限。
➡️