苍穹外卖day11销量TOP10商品展示,前端有商品名字但无销量(已解决)

苍穹外卖day11销量TOP10商品展示,前端有商品名字但无销量(已解决)

在开发销量TOP10商品展示这一功能时,前端有商品名字但无销量。

我初步怀疑是mapper层存在bug,我的OrderDetailMapper.xml代码如下:

java 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.OrderDetailMapper">

    <!--获取销量TOP10的商品-->
    <select id="getTop10Sales" resultType="com.sky.dto.GoodsSalesDTO">
        select od.name, sum(od.number) as sale
        from order_detail od, orders o
        where od.order_id=o.id and o.status=5 and o.order_time between #{begin} and #{end}
        group by od.name
        order by sale desc
        limit 10
    </select>

</mapper>

我怀疑可能是销量没有封装到GoodsSalesDTO中才导致前端不显示商品销量。

我的GoodsSalesDTO代码如下:

java 复制代码
package com.sky.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class GoodsSalesDTO implements Serializable {

    // 商品名称
    private String name;
    // 销量
    private Integer number;
}

终于找到了bug!od.number字段别名sale和DTO属性名number不一致,导致MyBatis无法正确将销量封装到DTO中。

修改OrderDetailMapper.xml代码如下:

java 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.OrderDetailMapper">

    <!--获取销量TOP10的商品-->
    <select id="getTop10Sales" resultType="com.sky.dto.GoodsSalesDTO">
        # Caution: 此处sum(od.number)的别名必须是number,否则无法封装到GoodsSalesDTO中
        select od.name, sum(od.number) as number
        from order_detail od, orders o
        where od.order_id=o.id and o.status=5 and o.order_time between #{begin} and #{end}
        group by od.name
        order by number desc
        limit 10
    </select>

</mapper>

启示

表字段别名必须和待封装对象的属性名保持一致,MyBatis才能够正确封装!

相关推荐
这个软件需要设计一下17 小时前
ninedata安装磁盘不足问题解决
运维·bug
热爱生活的五柒18 小时前
cc-switch安装方法、介绍及遇到的bug
bug·cc-switch
Greenland_1218 小时前
Android 混淆与混淆后bug日志问题定位
android·bug
应用市场19 小时前
踩坑记录:有符号整数位运算的那些隐蔽Bug——符号扩展、算术右移与补码
java·开发语言·bug
一灰灰blog2 天前
Jar包会自己消失?Excel会“记忆“数据?我遇到了两个灵异bug
java·spring boot·bug·excel
王家视频教程图书馆3 天前
修复服务端500相应,修复客户端上传文件.tmp 服务端接受不到文件bug
bug
qq_401700413 天前
Qt开发过程中遇到哪些经典的bug
qt·bug
0白露5 天前
关闭搜狗输入法右下角广告,可以适用于大多数应用系统通知的广告
windows·bug
一只自律的鸡5 天前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
Lichenpar7 天前
Springboot采用FastJson2作为MessageConverter时,配置的全局日期类型序列化转换BUG
java·开发语言·bug