【发布时间】:2012-06-08 09:21:17
【问题描述】:
这是一个非常简单的问题,适用于使用 java 编程 Web 界面。说,我没有使用 ORM(即使我正在使用),假设我的应用程序中有这个 Car (id,name, color, type, blah, blah) 实体,我有一个 CAR 表在数据库中表示该实体。所以,假设我只需要更新一堆汽车上的一部分字段,我知道典型的流程是:
- DAO 类 (CarDAO) - getCarsForUpdate()
- 遍历所有 Car 对象,仅将颜色更新为绿色或其他颜色。
- 另一个 DAO 调用 updateCars(Cars car)。
现在,对于一个简单的选择和更新查询,这不是有点绕圈子吗?在上面的第一步中,我将从数据库中检索整个对象数据:“select id,name,color,type,blah,blah.. where ..from CAR”而不是“从 CAR 中选择 id、color ...”。那么为什么我在发布 DAO 调用时要检索那些额外的字段,我永远不会使用“颜色”以外的任何东西?这同样适用于最后一步 3。或者,假设我只查询 id 和颜色(选择 id、color)并创建一个仅填充 id 和颜色的汽车对象 - 这完全可以,不是吗? Car 对象还是贫血?
这一切(面向对象)是不是有点假?
【问题讨论】:
标签: java oop database-design architecture orm