在有些情况下,会存在类里面的字段,不是数据库字段的情况,那么如果我们还是需要使用MyBatis Plus自带的CURD方法需要怎么做呢?那就需要在类里面排除非表字段了,下面我给大家介绍三种方法
1. 使用transient关键字
这个关键字是啥呢?
这个是一个Java语言的关键字,变量修饰符,
如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。
换句话来说就是,用transient关键字标记的成员变量不参与序列化过程。
它的作用:
Java的serialization提供了一种持久化对象实例的机制。
当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。
为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。
当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,
然而非transient型的变量是被包括进去的。
这样在使用MyBatis Plus自带的CURD方法时这个属性就会被忽略
/**
例如
**/
public class Student{
private transient String id;
}
2. 使用static关键字
/**
例如
**/
public class Student{
private static String id;
}
这样的静态属性也是会被忽略的
3. 使用@TableFieId注解
这个注解可以用于绑定数据库字段,但是它里面还有一个属性 exist
这个属性在默认的时候时为true,但是你可以把它设置为false
这样子就可以在使用MyBatis Plus自带的CURD方法时忽略这个属性
/**
例如
**/
public class Student{
@TableFieId(exist=false)
private String id;
}
这三种方法就可以解决某个变量不在数据库中对应任何字段的问题了