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 替换,未来将移除”。