FieldStrategy 作为一个字段策略枚举,标识在执行操作(insert, update, where)时,该字段何时应该加入进sql。

public enum FieldStrategy {
    /**
     * 忽略判断
     */
    IGNORED,
    /**
     * 非NULL判断
     */
    NOT_NULL,
    /**
     * 非空判断(只对字符串类型字段,其他类型字段依然为非NULL判断)
     */
    NOT_EMPTY,
    /**
     * 默认的,一般只用于注解里
     * <p>1. 在全局里代表 NOT_NULL</p>
     * <p>2. 在注解里代表 跟随全局</p>
     */
    DEFAULT,
    /**
     * 不加入 SQL
     */
    NEVER
}

NOT_NULL, NOT_EMPTY, NEVER都能很好的表达逻辑的含义,但是IGNORED的命名则容易让人引起误会,如果不是熟悉者或者专门看了源码注释,则可能会理解成”忽略该字段“,也就是不将该字段加入sql. 而该字段的实际含义则是”任何时候都加入sql“。 因此,建议将其命名为 'ALWAYS',考虑到兼容性问题,可以增加这个字段,并考虑将 IGNORED 标记为弃用

Comment From: qmdx

https://github.com/baomidou/mybatis-plus/commit/b0593e73865c7d7c2f6c171cf2680e881479c2f5

Comment From: gengzhy

版本3.5.3.2 里已经替换成 ALWAYS了,但原来的IGNORED 没注释,只能来看issue,才明白,原来是 ALWAYS 替换了 IGNORED 。在 IGNORED 上标注“该属性已失效,使用 ALWAYS 替换,未来将移除”。