今天在写项目的mapper.xml文件的时候,出现了个别字段查询结果为null的情况,但sql语句没有错误,仔细查看了一遍,才发现错误,现在记录下来
先讲一讲sql语句和ResultMap的顺序:
首先会执行sql语句,sql语句返回字段信息,然后才是ResultMap映射字段信息。
实体类UserInfo
package com.school.oauth.endpoint.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.school.parent.domain.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Update;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List;
@Table(name = "oauth_user")
@ApiModel(value = "用户表")
@Data
public class UserInfo extends BaseDomain {
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty(value = "用户主键,提供给其他表做外键")
private Long userId;
@Column(unique = true)
@NotBlank
@Length(max = 32)
@ApiModelProperty(value = "用户名,必须唯一")
private String username;
@NotBlank
@Length(max = 32)
@ApiModelProperty(value = "昵称,可以重复")
private String nickname;
@Length(max = 128)
@ApiModelProperty(value = "加密密码")
private String encryptedPassword;
@Length(max = 32)
@Pattern(regexp = "^[1][3,4,5,7,8][0-9]{9}$"
,message = "手机号码格式错误")
@ApiModelProperty(value = "用户手机号码")
private String phone;
@Email
@Length(max = 128)
@ApiModelProperty(value = "用户邮箱")