MyT*_*tle 5 java oop dao repository-pattern
使用DAO模式时如何处理多对多关系?DAO 是否负责使用第三个链接表链接两个实体?例如,我有 2 个实体:Customer和Product.
我需要提供如下方法:
public void assignCustomerToProduct(...);
public List<Product> getSelledProducts(long customerId);
Run Code Online (Sandbox Code Playgroud)
这种方法需要使用第三个表作为链接表。是CustomerDao负责提供这种方法吗?或者最好将这些方法排除在服务层中?
其中一个对象应该拥有这种关系。例如,仅当您保存员工时才会保存职位。
如果你这样做,那么 Employee 就变得(有点)像聚合根(如果你谈论的是 DDD 存储库)。然后,存储库负责根据需要创建位置并将多对多条目插入链接表中。
如果Position本身就是一个聚合根,那么EmployeeRepository只负责更新链接表,而不负责持久化Positions。