我有以下实体(例如):
BookAuthorBook实体也是一个聚合体,因为它关联了一个或多个Author。现在,我在如何从回购中获取这个聚合方面有了一个问题。我有以下几种情况--我也需要考虑性能:
Book。不需要获取Author的。Books名称的Author。显然,我们需要获取Book和相关Author的聚合。Book。类似于(2),但我不想从回购中获取Authors,而只是计数。那么我的存储库应该是什么样的呢?具体问题:
findBooks、findBooksWithAuthors和findBooksWithAuthorsCount这样的方法吗?但这会导致大量的方法,因为我们的实体之间有很多关系。findBooks,然后在AuthorsRepo中使用loadAuthors,也就是说,在遇到某些性能问题之前,不要执行连接,然后再进行重构。BookAndAuthors吗?请注意,这个例子是微不足道的-你必须知道我们的模型更丰富,有更多的关系。
发布于 2014-10-16 07:23:11
是否需要获取此类信息以在UI上显示?
我鼓励您分离您的读写关注点,并使您的存储库接口保持简单(类似于集合接口)。
看一看CQRS,它与DDD的工作非常好,将有助于简化您的设计到很大程度上。
一旦进入CQRS,只需记住CQRS 不一定涉及事件源。
在您的例子中,我建议在这篇文章中显示最简单的方法,基本上有一个读取服务(可以称之为Finder),它激发SQL并为您提供UI所需的DTO/Map。
https://stackoverflow.com/questions/26397356
复制相似问题