java - 道。多对多关系

标签 java oop repository-pattern dao

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

我需要提供如下方法:

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

此方法需要使用第 3 个表作为链接表。 CustomerDao 是否负责提供这个方法?或者最好将此方法排除在服务层中?

最佳答案

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

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

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

关于java - 道。多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14704931/

相关文章:

c# - 应该扩展还是封装 ORM 对象?

java - 在 Spring Boot 应用程序中使用 redis 创建存储库

c# - POCO/Domain 对象是否可以注入(inject)依赖项

java - 需要帮助将 Java 移植到 Ruby。奇怪的行为

java - 在 Eclipse Helios 中使用 C++ 的 Android Cocos2DX

c++ - 过程程序和面向对象的程序有什么区别?

database - 存储库模式问题

java - getChildDrawingOrder 调用/使用不正常?

java - 从 LinkedList 获取最大值

c# - 掷一些骰子......看但不要碰