我是Spring的新手,我会直截了当地说。我的应用程序中的图层似乎相当传统:
- Controller
- DTO
- Service
- DAO
- Model
一般来说,DAO接口的每个实现是否只处理模型中的一个对象? (对不起,我只能找到真正没有面对这一点的琐碎例子) 可能在某种程度上是一对一的关系,双向,比如只有一个共享主键。 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负责模型对象和DB之间的映射,那么谁应该是照顾模型的POJO对象之间的一致性的人?
我的标题问题是DAO是否可以处理模型中的几个POJO,DAO也可以保持这些POJO的一致性。
非常感谢 再见
答案 0 :(得分:1)
您的DAO应该只考虑一个主要因素 - 业务责任。
例如:
AccountService <--> AccountsDAO
| | |
AccountsModel ClientModel BalanceModel
您无法将DAO限制为仅一种型号。 DAO应该执行它可以提供的功能来支持您的服务层。
你的hibernate / ORM模型只处理表之间的关系,他们不知道服务层期望的调用。
结束词:如果DAO是为了它自己的目的而设计的,DAO可以与许多模型/ POJO进行交互。