p3c MyBatis联表查询的返回结果用什么类接收? DO? DTO?AO ?

8iwquhpp  于 2022-10-25  发布在  其他
关注(0)|答案(2)|浏览(787)

规约原文

【参考】分层领域模型规约:
 DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
 DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
 BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。
 AO(Application Object):应用对象,在 Web 层与 Service 层之间抽象的复用对象模型,
极为贴近展示层,复用度不高。
 VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
 Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止
使用 Map 类来传输。

问题描述

假设我的数据库实体类是DO,我在Mybatis中做联表查询。用到了 这些标签来做 一对多、多对一的Map关系。那么resultMap的 resultType要指定什么类呢?? 直接用DO的话,DO在原则上要和数据库字段一一对应,不能更改。 用DTO的话,DTO又只能在Service、Manager层。。 我就不知道用什么类了

修改建议

官方能不能针对规约原文的领域对象模型。做一个简单的Demo出来。。 寥寥几句话让人很困惑啊!

wbrvyc0a

wbrvyc0a1#

我理解应该用BO 。biz层object的意思,关联查询结果,更接近于业务层

ajsxfq5m

ajsxfq5m2#

我的理解是DO应该和sql里的字段一一对应即可
但是因为DO一般是建表时自动生成的,无法随意更改
所以使用了DTO来接受查表的数据(后续也可以随意增删)

相关问题