一、背景描述
根据某人出现的次数做一次汇总,数据库中并未存在此字段,但是前端页面中要用到,所以就需要在实体类中添加上一个逻辑字段(通过mybatis-plus里的@TableField注解可以解决此问题)
SQL语句如下:
<!--分组查询日/周/月报未读列表数据--> <select id="queryList" resultType="com.iot.uoa.daily.entity.DailyNoReadReport"> SELECT a.*, COUNT(*) FROM uoa_daily_no_read_report a, uoa_wx_ma_user_info b WHERE a.user_name = b.wx_phone AND a.is_del = 0 AND DATE_FORMAT(a.create_time,'%Y-%m-%d') = CURDATE() GROUP BY a.user_name </select>
其中count()函数是统计出现多少次使用的,然后我就把这个count字段添加到DailyNoReadReport这个实体类中了,但是统计后的结果并未映射到DailyNoReadReport实体类中的count字段中。
count()函数没有起别名,查询出的结果会把count()当作一个列名,mybatis-plus框架并不会自动映射到DailyNoReadReport实体类中,如下图所示,COUNT(*)被当作一列的名字:
二、解决方案
解决方案,也很简单,就是将COUNT(*)起个别名,和实体类上的字段名字对应起来即可。
正解的SQL如下:
对应的实体类DailyNoReadReport如下:
完结!