项目场景:
使用 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 层返回的对象可以正常映射到数据库的值。
网友评论