【发布时间】:2014-10-16 06:07:58
【问题描述】:
我有以下实体(示例):
BookAuthor
Book 实体也是一个聚合,因为它关联了一个或多个 Authors。现在我在如何从 repo 中获取这个聚合时遇到了问题。我有以下情况 - 我也确实需要注意性能:
- 列出所有
Books。无需获取Authors。 - 列出所有具有
Authors 名称的Bookss。显然,我们需要获取Books 和相关Authors 的聚合。 - 列出所有
Books 的作者count。类似于 (2),除了我不想从 repo 中获取Authors,只是计数。
那么我的存储库应该是什么样子?具体问题:
- 我们应该有像
findBooks和findBooksWithAuthors和findBooksWithAuthorsCount这样的方法吗?但这会导致大量的方法,因为我们的实体之间有很多关系。 - 我们是否应该只在
AuthorsRepo中添加findBooks和loadAuthors,即不进行连接,直到遇到一些性能问题,然后再进行重构。 - 我是否应该创建一些聚合值对象,例如:描述关系的
BookAndAuthors?
请注意,这个例子是微不足道的 - 你必须知道我们的模型更丰富,有更多的关系。
【问题讨论】:
标签: domain-driven-design ddd-repositories