Spring DAO 类 应该只引用模型中的一个 object 吗?

Should Spring DAO classes refer only one object of the model?

我是新手Spring,我就开门见山了。我的应用程序中的层似乎相当传统:

- Controller
- DTO
- Service    
- DAO
- Model

一般来说,DAO 接口的每个实现都应该只处理模型中的一个 object 吗? (抱歉,我只能找到真正没有面对这一点的微不足道的例子) 可能在 one-to-one 关系中的某个时候,双向的,比如只有一个共享主键。 Hibernate 不关心,除了映射,它不能处理 POJO 相互引用。假设有这种情况即:

Table1: Parent        Table2: Child
------------------    ----------------------
| PARENT_ID (PK) |<---|CHILD_ID (PK and FK)|
------------------    ----------------------

需要分别保持更新:

parent.setChild(a_child); // private field of Parent.java
child.setParent(a_parent); // private field of Child.java

看看上面提到的层,哪里是实现这种逻辑的正确位置?如果 Hibernate 负责模型的 objects 和 DB 之间的映射,那么谁应该负责模型的 POJO objects 之间的一致性?

我的标题问题想知道 DAO 是否可以处理模型中的多个 POJO,DAO 也可以保持这些 POJO 的一致性。

非常感谢 再见

你的 DAO 在设计时应该只考虑一件事情——商业责任

例如:

 AccountService <-->      AccountsDAO
                     |        |           |
            AccountsModel ClientModel BalanceModel

你不能将你的 DAO 限制为只有一种模型。 DAO 应该执行它可以提供的功能来支持您的服务层。

您的 hibernate/ORM 模型仅处理表之间的关系,它们不知道服务层期望的调用。

结束语:如果 DAO 是为自己的目的而设计的,DAO 可以与许多 Models/POJOs 交互。