项目报错: Could not set property 'ID' of 'class cn.xxx.entity.vo.CrossVo' with value '1'

今天写mybatis的时候遇到一个问题轮饶了大半天,后来才发现自己犯了非常幼稚的错误,今天写了一个很简单的表,然后利用Mybatis的反向工具生成实体和BaseResultMap里面的字段,后来查询的时候,一直报错:Could not set property 'ID' of 'class cn.xxx.entity.vo.CrossVo' with value '1'

先看下生成后的实体:

@TableName("rg_cross")
@ApiModel(value = "路口表实体", description = "实体类")
public class Cross extends Model {

    private static final long serialVersionUID = 1L;

    /**
     * 路口主键id
     */
	@TableId(value="ID", type= IdType.AUTO)
	@ApiModelProperty(value = "路口主键id")
	private Long id;

    /**
     * 路口名称
     */
	@TableField("CROSS_NAME")
	@ApiModelProperty(value = "路口名称")
	@Length(min = 0, max =200, message = "路口名称长度不能超过200")
	private String crossName;

    /**
     * 路口经度
     */
	@TableField("LONGITUDE")
	@ApiModelProperty(value = "路口经度")
	@Length(min = 0, max =60, message = "路口经度长度不能超过60")
	private String longitude;

    /**
     * 路口纬度
     */
	@TableField("LATITUDE")
	@ApiModelProperty(value = "路口纬度")
	@Length(min = 0, max =60, message = "路口纬度长度不能超过60")
	private String latitude;

    /**
     * 是否是重要路口 1:是  0:否
     */
	@TableField("IS_IMPORTANT_ROAD")
	@ApiModelProperty(value = "是否是重要路口 1:是  0:否")
	private Integer isImportantRoad;


	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getCrossName() {
		return crossName;
	}

	public void setCrossName(String crossName) {
		this.crossName = crossName;
	}

	public String getLongitude() {
		return longitude;
	}

	public void setLongitude(String longitude) {
		this.longitude = longitude;
	}

	public String getLatitude() {
		return latitude;
	}

	public void setLatitude(String latitude) {
		this.latitude = latitude;
	}

	public Integer getIsImportantRoad() {
		return isImportantRoad;
	}

	public void setIsImportantRoad(Integer isImportantRoad) {
		this.isImportantRoad = isImportantRoad;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}

	@Override
	public String toString() {
		return "Cross{" +
			", id=" + id +
			", crossName=" + crossName +
			", longitude=" + longitude +
			", latitude=" + latitude +
			", isImportantRoad=" + isImportantRoad +
			"}";
	}
}

再看我的BaseResultMap里面的字段


	
		
		
		
		
		
	

再看我的查询语句:

正确的结果是这样的,

而我犯错的原因是没有BaseResultMap里面的 property跟我实体里面的小写一致,才导致这个错误。

注意点:BaseResultMap里面的 property的字段应该与实体中的字段保持一致

你可能感兴趣的:(日常笔记,mybatis)