请教各位大佬一个 mybatis plus 问题

2021-08-05 17:16:32 +08:00
 liian2019
    select
    sum(JOIN_COUNT) as 'joinNum',sum(WIN_COUNT) as 'winNum',sum(DEFRAY_COUNT) as 'writeOffNum'
    from mkplat_activity_point
    where
    activity_id = #{activityId}
    and
    point_id >= #{start}
    and
    point_id <![CDATA[<]]> #{end}

请问这种 sql 在 mp 里面除了 xml 还有啥办法吗,selectMaps 有点麻烦,返回值还要把 map 转为对应的对象,能不能直接通过 mybatis plus 返回一个 StatisticsCount 出来

    @Override
    public StatisticsCount count(String activityId, String start, String end) {
        QueryWrapper<ActivityPointDO> wrapper = Wrappers.query();
        wrapper.select("sum(JOIN_COUNT) as 'joinNum'","sum(WIN_COUNT) as 'winNum'","sum(DEFRAY_COUNT) as 
         'writeOffNum'").
                eq("activity_id",activityId).
                ge("point_id",start).
                lt("point_id",end);
        List<Map<String, Object>> maps = this.getBaseMapper().selectMaps(wrapper);


    }
1057 次点击
所在节点    Java
2 条回复
hcen1997
2021-08-12 11:18:27 +08:00
在 mybatis 中, 如果 select 的列结果名和 class 的结果名对应上, 是可以直接转换的
<select> select a,b,c from tt where a = #{paramA} </select>
class CC { String a; String b; String c}
List<CC> getByParamA(@Param("paramA")String paramA);

上面这种 sql 和 class 对应的关系, 接口返回类型可以直接写类名, 自动转换了
mybatis 甚至可以自动转换驼峰和下划线
liian2019
2021-08-13 09:44:28 +08:00
@hcen1997 谢谢你,这个我知道,只是想用 mp 的方式,看看能不能脱离掉 xml

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793894

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX