我正在学习DDD,你可以想象我的大脑正在沸腾。
我的问题与我的领域对象(实体、VO等)有关,它们代表我的领域概念/逻辑以及如何持久化/检索它们。
《蓝皮书》说,仓库是表示域对象集合的一种方式,并负责与基础架构层通信。我在某些帖子中也看到,必须在基础架构层使用Hibernate、JPA或其他技术。
然后我看到了这个Spring-data-jpa示例http://spring.io/guides/gs/accessing-data-jpa/,我开始疯狂。
标语说Spring-data-jpa是为了轻松创建存储库,之前的示例似乎将JPA注释合并到域对象中(customer
)。
这个示例是正确的吗?还是我是正确的?
如果我是正确的,那么领域和基础架构必须分开,这意味着要存储一个客户,我必须拥有:
- 在我的域层中有一个
Customer
类(代表客户并具有所有逻辑操作) - 在我的域层中有一个
CustomerRepository
(从基础架构层检索或存储客户) - 在基础架构层中有一个
Customer
类,可能带有@Entity注释 - 一些
CustomerReposityJPA
知道如何从数据库存储/检索客户。
感谢任何解释。