实际项目中,使用mybatis plus,我们经常会创建一个实体类用来和表对应,示列如下:
package com.arcade.earth.po; import com.arcade.po.BaseInfo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import lombok.*; import java.math.BigDecimal; @EqualsAndHashCode(callSuper = true) @TableName("tbl_site_contractor") @ApiModel(value="SiteContractorInfo对象") @JsonInclude(JsonInclude.Include.NON_NULL) public class SiteContractorInfo extends BaseInfo { private static final long serialVersionUID = 1L; private String siteId; private String contractorId; private String rateType; private BigDecimal price; private String status; public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getSiteId() { return siteId; } public void setSiteId(String siteId) { this.siteId = siteId; } public String getContractorId() { return contractorId; } public void setContractorId(String contractorId) { this.contractorId = contractorId; } public String getRateType() { return rateType; } public void setRateType(String rateType) { this.rateType = rateType; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } @Override public String toString() { return "SiteContractorInfo{" + "siteId='" + siteId + '\'' + ", contractorId='" + contractorId + '\'' + ", rateType='" + rateType + '\'' + ", price=" + price + '}'; } }
该实体中的属性一一对应表 tbl_site_contractor的字段,但是有时候其他查询需要用到此实体,可能额外需要添加其他属性,并不和表字段对应,比如添加projectName属性,可能会报错,具体解决办法如下
@TableField(exist = false) private String projectName;
在属性上添加注解@TableField(exist = false),这样反射时就不会要求此字段必须和表字段对应了