mybatis-plus更新策略部分字段不更新问题
作者:傲太白
这篇文章主要介绍了mybatis-plus更新策略部分字段不更新问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
mybatis-plus更新策略部分字段不更新
直接上代码
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
public @interface TableField {
    String value() default "";
    boolean exist() default true;
    String condition() default "";
    String update() default "";
    FieldStrategy insertStrategy() default FieldStrategy.DEFAULT; //新增
    FieldStrategy updateStrategy() default FieldStrategy.DEFAULT; //修改
    FieldStrategy whereStrategy() default FieldStrategy.DEFAULT;
    FieldFill fill() default FieldFill.DEFAULT;
    boolean select() default true;
    boolean keepGlobalFormat() default false;
    JdbcType jdbcType() default JdbcType.UNDEFINED;
    Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class;
    String numericScale() default "";
}五大策略
public enum FieldStrategy {
    IGNORED, //忽略
    NOT_NULL,    //字段不为null
    NOT_EMPTY,    //字段不为“”
    DEFAULT, //默认
    NEVER;    //从不更新
    private FieldStrategy() {
    }
}使用方法
@TableField(value = "create_user_id", updateStrategy = FieldStrategy.NEVER) private int createUserId;//创建用户ID
上述代码表达意思是,修改时该字段从不更新。
mybatis-plus字段更新策略 FieldStrategy
public enum FieldStrategy {
    // 不管有没有有设置属性,所有的字段都会设置到insert语句中,如果没设置值会更新为null 
    IGNORED,
    // 也是默认策略,也就是忽略null的字段,不忽略""
    NOT_NULL,
    // 为null,为空串的忽略,就是如果设置值为null,“”,不会插入数据库
    NOT_EMPTY,
    // 同NOT_NULL
    DEFAULT,
    // 一经插入 永不更新 (etc:createTime)
    NEVER;
    private FieldStrategy() {
    }
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
