问题:mapper继承BaseMapper后使用insert方法时候实体有对应字段,数据库没有对应字段的时候会报错。
一:@Transient注解忽略实体类属性-适用mybatis框架
@Transient注解忽略实体类属性,在实体类插入数据时候不映射数据库字段。
import org.springframework.data.annotation.Transient;
@Transient
private String description;
二:@TableField(exist = false)注解忽略实体类属性-适用MyBatisPlus
解决方案
MyBatisPlus注解@TableField,一般不是必须的。但是他有一个属性exist,是表示这个字段在数据库中是否存在,与JPA的@Transient是类似的。
于是乎,加个@TableField(exist = false)搞定
@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。
@TableField(exist = true):表示该属性为数据库表字段。(数据实体一般默认是数据库字段)
import com.baomidou.mybatisplus.annotation.TableField;
@TableField(exist = false)
private String description;