MyBatis

MyBatis 查询结果未映射到对象

2021-09-16  本文已影响0人  思念_似水流年

项目场景:

使用 mybatis + springboot 进行数据库查询操作时,发现返回的 dao 对象一直报空指针

问题描述:

后端 dao 层(service 层调用 dao 层,调用 select 查询方法,select 语句有返回查询结果,但 dao 对象属性一直都是 null)

原因分析:

dao.xml 文件中,查询方法有问题:

<resultMap id="ReportDto" type="com.test.project.report.model.ReportDto">
</resultMap>

实体类如下:

@Data
public class ReportDto {
    private Integer projectId;
    private Integer caseTotalCount;
    private Integer caseExecuteCount;
    private Integer caseSuccessCount;
}

这里指定的返回类型是 ReportDto,实体类中的属性与实际数据库中的字段并不对应,而是与查询语句返回的结果值对应,需要指定字段映射。
修改成如下:

<resultMap id="ReportDto" type="com.test.project.report.model.ReportDto">
    <result column="project_id" property="projectId" />
    <result column="case_total_count" property="caseTotalCount" />
    <result column="case_execute_count" property="caseExecuteCount" />
    <result column="case_success_count" property="caseSuccessCount" />
</resultMap>

再次运行,发现 dao 层返回的对象可以正常映射到数据库的值。

上一篇 下一篇

猜你喜欢

热点阅读