5

使用DAO模式时如何处理多对多关系?DAO 是否负责使用 3-rd Link 表链接两个实体?例如,我有 2 个实体:CustomerProduct.

我需要提供如下方法:

public void assignCustomerToProduct(...);
public List<Product> getSelledProducts(long customerId);

这种方法需要使用 3-rd 表作为 Linkage 表。CustomerDao负责提供这个方法吗?或者最好将此方法排除在服务层中?

4

1 回答 1

2

其中一个对象应该拥有该关系。例如,仅当您保存员工时才会保存职位。

如果你这样做,那么 Employee 就会(有点)像聚合根(如果你在谈论 DDD 存储库)。然后,如果需要,存储库负责创建位置并在链接表中插入多对多条目。

如果 Position 本身是一个聚合根,那么 EmployeeRepository 只负责更新链接表,而不负责持久化 Positions。

于 2013-02-05T10:33:39.060 回答