使用 DAO 模式时如何处理多对多关系? DAO 是否负责使用 3-rd 链接表链接两个实体?例如,我有 2 个实体:Customer
和 Product
。
我需要提供如下方法:
public void assignCustomerToProduct(...);
public List<Product> getSelledProducts(long customerId);
此方法需要使用第 3 个表作为链接表。
CustomerDao
是否负责提供这个方法?或者最好将此方法排除在服务层中?
最佳答案
其中一个对象应该拥有关系。因此,例如职位仅在您保存员工时保存。
如果您这样做,那么 Employee 会(有点)像聚合根(如果您谈论的是 DDD 存储库)。然后存储库负责根据需要创建位置并在链接表中插入多对多条目。
如果Position本身是聚合根,那么EmployeeRepository只负责更新链接表,不负责持久化Positions。
关于java - 道。多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14704931/