苍穹外卖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才能够正确封装!

相关推荐
数字芯片实验室1 天前
仿真器出bug了?分频时钟竞争的诡异仿真现象
fpga开发·bug
Zsh-cs1 天前
苍穹外卖day9前端订单分页查询后订单菜品不展示(已解决)
bug
北数云2 天前
北数云内测|AI 需求发布区 + Bug/建议长期征
bug·模型·智能体
天上掉下个牛霸天3 天前
Bug悬案:技术侦探如何破案
bug
f***24113 天前
Bug悬案:程序员破案指南
bug
e***98573 天前
Bug破案现场:技术团队的悬疑推理秀
bug
数字芯片实验室3 天前
边界值测试:一个”==”引发的芯片bug
fpga开发·bug
e***98574 天前
Bug悬案侦破大会:高效解决技术难题
bug
f***24114 天前
Bug悬案侦破:技术团队的破案指南
bug