myBatis 常见问题(一)查询结果字段为null

问题描述:

查询认购单详情


    	 
        
		
 
/**
	 * admin
	 * 获取认购单详情
	 * @param vo
	 * @return
	 */
	public String adminGetDatails(ProductSubscriptionVO vo){
		if (StringUtils.isBlank(vo.getSubscriptionId())) {
			return buildFailResult(SystemStatusEnum.ILLEGAL_PARAMETER, "请传入认购单ID");
		}
		if (StringUtils.isBlank(vo.getMemberId())) {
			return buildFailResult(SystemStatusEnum.ILLEGAL_PARAMETER, "请传入会员ID");
		}
		SubscriptionPO po = dao.adminGetDatail(vo);
		if (po == null) {
			return buildFailResult(SystemStatusEnum.NO_DATA);
		}
		SubscriptionVO subscriptionVO = VoFactory.createByJson(SubscriptionVO.class, po);
		return buildSuccessResult(subscriptionVO, false);
	}

结果为:

myBatis 常见问题(一)查询结果字段为null_第1张图片

从sql语句上看,明明我查了3个字段,姓名、电话、身份证号码。问题是少了身份证号码字段。为什么呢?


问题分析:

myBatis通过xml文件把查询的结果resultMap映射到type实体类中。

我们检查resultMap与type实体类,发现type实体类中有身份证号码字段,但resultMap没有身份证号码字段。造成查询结果无法映射给实体类,所以我们在最终的结果中看不到身份证号码字段。


问题解决:

在resultMap中增加身份证号码字段。


    	 
        
	
	
然后运行代码,发现问题已解决。
myBatis 常见问题(一)查询结果字段为null_第2张图片

你可能感兴趣的:(常见问题)