开发者社区> 问答> 正文

关于分层领域模型规约中DO的一点疑问

对《阿里巴巴java开发手册》中关于分层领域模型规约 有个疑问:DO(Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。

那如果是类似:
select id, avg(grade) as avg_grade
from s;

查出的avg_grade不是与数据库表对应的字段,是应该将这种字段封装到DTO里,然后DAO层返回该DTO吗?

(用了mybatis框架)

展开
收起
yusijia 2017-06-12 23:32:32 7550 0
2 条回答
写回答
取消 提交回答
  • 个人观点:
    1、把DO定义成与DB里表映射,这个太过狭隘,DO里的Data应该是个泛指,而不仅仅是数据库里持久化下来的数据,DTO/VO这些都应该是Data,只是可能没有持久化下来而已
    2、如果要映射DB表的话,感觉用PO(Persistence Object, 持久化对象)更合适些
    3、如果要定义关系的话,DO是POJO的扩展,同时DO是PO/BO/DTO/VO这些统称

    2019-07-17 21:17:12
    赞同 1 展开评论 打赏
  • 不用完全把规约当成教条,这种情况可以视为数据库层有一个计算后的字段,只是没有实际写到库里,sql查到后直接放到dao要传出的do就好

    2019-07-17 21:17:12
    赞同 1 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
典型业务逻辑漏洞挖掘 立即下载
为并行图数据处理提供高层抽象/语言 立即下载
研发过程中的那些反模式 立即下载