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

相关推荐
我星期八休息9 小时前
软件测试—从认识到BUG
考研·安全·bug
hulihutu441 天前
拒绝延期、bug、货不对板:2026 管理系统定制开发落地保障手册
github·bug·鸿蒙系统·数据库管理员
Rain5091 天前
谁动了我的 URL?——记一次微前端“灵异 Bug“的排查实录
前端·vue.js·人工智能·前端框架·bug·ai编程
百变梦仔1 天前
Codex 处理接口异常类 bug 时,我会让调试 Skill 先接住错误信息
bug
深念Y3 天前
fnOS-k3s-ResolvConf权限700-Bug分析
内核·bug·nas·k3s·fnos·魔改内核
不正经学生4 天前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
Capricorn19884 天前
Bug排障实录:Software 3.0 遭遇文献幻觉?知芽 Notebook Skill 底层架构解析
人工智能·笔记·架构·bug·论文笔记
项目管理与代码4 天前
Bug跟踪管理系统对比:从提报效率、流转体验与数据分析能力三个维度评估
bug·项目管理·bug跟踪
福大大架构师每日一题7 天前
RAGFlow v0.27.1 发布:新增 Azure DevOps、You.com 搜索,修复海量 Bug,性能大幅提升!
bug·azure·devops
树码小子7 天前
测试(6) - bug篇(上)
软件测试·bug