MyBatisPlus设置忽略映射字段⾮数据库字段@TableField(exist=false)
问题背景
最近⽤MyBatisPlus的时候遇到⼀个问题,MyBatisPlus怎么忽略映射字段,就是怎么设置⼀个字段不为数据库字段但⼜是映射必须的。不忽略映射字段吧,⼜会报错。
Error querying database. Cause: ptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘***’ in ‘field list’
解决⽅案
MyBatisPlus有个不起眼的字段@TableField,⼀般不是必须的。但是他有⼀个属性exist,是表⽰这个字段在数据库中是否存在(是否实体字段),与JPA的@Transient是类似的。
于是乎,加个@TableField(exist = false)搞定
@TableField(exist = false):表⽰该属性不为数据库表字段,但⼜是必须使⽤的。
@TableField(exist = true):表⽰该属性为数据库表字段。
/
/zhengkai.blog.csdn
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface TableField {
String value()default"";
String el()default"";
boolean exist()default true;
String condition()default"";
String update()default"";
FieldStrategy strategy()default FieldStrategy.DEFAULT;
FieldFill fill()default FieldFill.DEFAULT;
boolean select()default true;
}
import java.io.Serializable;
import batisplus.annotation.IdType; import batisplus.annotation.TableField; import batisplus.annotation.TableId; import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @description menu
* @author zhengkai.blog.csdn
* @date 2020-05-20
*/
@Data
public class Menu implements Serializable {
private static final long serialVersionUID =1L;
/**
* 菜单id
*/
@TableId(type = IdType.AUTO)
private Integer menuId;
/**
* 地址
*/
private String href;
/**
* 图标
*/
private String icon;
/**
* ⽬标
*/
private String target;
/
**
* 名字
*/
private String title;
private String roleId;
/**
* ⽗菜单id
*/
private Integer parentMenuId;
@TableField(exist =false)
private List<Menu> child;
jpa mybatis
public Menu(){
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。