返回信息流如果有个查询,只需要DO(就是数据库表映射)的部分字段,那么我应该查出所有字段然后返回DO转为Entity呢,还是重新封装一个类似DTO呢?但是两种做法都有点问题,第一种效率不高,第二种不符合规范
这是一条镜像帖。来源:北邮人论坛 / java / #65091同步于 2021/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
请教一个Mybatis的问题
Spirit597
2021/3/18镜像同步17 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我原本是想按照这样的ddd结构来开发(图里的PO和我上面说的DO是一个东西,持久层对象,映射数据表),但是感觉中间一些细节不能处理得很好,就比如上面那个问题
【 在 sunyalou 的大作中提到: 】
: dto
感谢。这个应该要在xml里实现吧?没有写过这种返回时带null的,只写过查询时判断入参是否null的
【 在 shi963ss 的大作中提到: 】
: 根据所需字段查询返回到DO中不行吗?非查询字段在DO的Entity字段就为空,这样都可以用一个DO。不知道能否解决lz的问题
想返回哪个字段就在 resultMap 写哪个,没写的对应字段就是默认值,如果给前端也不想返回空字段,可以用 JsonIgnore 注解(spring boot 默认有 Jackson
感谢。明白了,今天去尝试下
【 在 qingliu 的大作中提到: 】
: 想返回哪个字段就在 resultMap 写哪个,没写的对应字段就是默认值,如果给前端也不想返回空字段,可以用 JsonIgnore 注解(spring boot 默认有 Jackson
【 在 Spirit597 的大作中提到: 】
: 感谢。这个应该要在xml里实现吧?没有写过这种返回时带null的,只写过查询时判断入参是否null的
不用写到Mapper里,用注解就可以实现。比如 Student(id, name, age)表->对应 Student 对象。
只查询12岁同学的名称不就可以。
@Select (SELECT name FROM Student WHERE age = #{age})
Student getNameByage (@Param("age")int age);
这样来实现