【发布时间】:2020-12-15 23:04:47
【问题描述】:
我想知道是否“允许”将聚合 A 与多个实体、值对象...保持在一起的存储库访问包含聚合 B 的表。示例如下。
我的系统是一个拥有多种产品的网上商店。 Product 是一个聚合根,所以我有一个 ProductRepository。那么单个Order 也是一个聚合根,其存储库OrderRepository。假设Order 聚合确实包含所有OrderLineItems:
现在我的客户要求在网上商店中显示从未购买过的产品的部分。在 SQL 中,这将是这样的:
SELECT * FROM products p
WHERE NOT EXISTS (
SELECT * FROM OrderLineItems o WHERE o.productId = p.id
)
对于ProductRepository 是否允许此查询,因为它只返回Products,还是不允许ProductRepository 使用此查询,因为它访问另一个聚合的数据?
【问题讨论】:
标签: spring-data-jpa architecture repository domain-driven-design