Explorar o código

fix: github issues/5129 优化字段策略枚举语义

hubin %!s(int64=2) %!d(string=hai) anos
pai
achega
b0593e7386

+ 7 - 2
mybatis-plus-annotation/src/main/java/com/baomidou/mybatisplus/annotation/FieldStrategy.java

@@ -18,16 +18,21 @@ package com.baomidou.mybatisplus.annotation;
 /**
 /**
  * 字段策略枚举类
  * 字段策略枚举类
  * <p>
  * <p>
- * 如果字段是基本数据类型则最终效果等同于 {@link #IGNORED}
+ * 如果字段是基本数据类型则最终效果等同于 {@link #ALWAYS}
  *
  *
  * @author hubin
  * @author hubin
  * @since 2016-09-09
  * @since 2016-09-09
  */
  */
 public enum FieldStrategy {
 public enum FieldStrategy {
     /**
     /**
-     * 忽略判断
+     * 忽略判断,该字段存在语义理解问题,后续版本将废弃 github issues/5129
      */
      */
+    @Deprecated
     IGNORED,
     IGNORED,
+    /**
+     * 任何时候都加入 SQL
+     */
+    ALWAYS,
     /**
     /**
      * 非NULL判断
      * 非NULL判断
      */
      */

+ 2 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/Wrapper.java

@@ -160,6 +160,8 @@ public abstract class Wrapper<T> implements ISqlSegment {
                 return Objects.nonNull(tableInfo.getPropertyValue(entity, e.getProperty()));
                 return Objects.nonNull(tableInfo.getPropertyValue(entity, e.getProperty()));
             case IGNORED:
             case IGNORED:
                 return true;
                 return true;
+            case ALWAYS:
+                return true;
             case NOT_EMPTY:
             case NOT_EMPTY:
                 return StringUtils.checkValNotNull(tableInfo.getPropertyValue(entity, e.getProperty()));
                 return StringUtils.checkValNotNull(tableInfo.getPropertyValue(entity, e.getProperty()));
             case NEVER:
             case NEVER:

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableFieldInfo.java

@@ -595,7 +595,7 @@ public class TableFieldInfo implements Constants {
         if (fieldStrategy == FieldStrategy.NEVER) {
         if (fieldStrategy == FieldStrategy.NEVER) {
             return null;
             return null;
         }
         }
-        if (isPrimitive || fieldStrategy == FieldStrategy.IGNORED) {
+        if (isPrimitive || fieldStrategy == FieldStrategy.IGNORED || fieldStrategy == FieldStrategy.ALWAYS) {
             return sqlScript;
             return sqlScript;
         }
         }
         if (fieldStrategy == FieldStrategy.NOT_EMPTY && isCharSequence) {
         if (fieldStrategy == FieldStrategy.NOT_EMPTY && isCharSequence) {

+ 1 - 1
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/EncryptTest.java

@@ -68,7 +68,7 @@ class EncryptTest {
         private String x3;
         private String x3;
         @TableField(whereStrategy = FieldStrategy.NOT_EMPTY)
         @TableField(whereStrategy = FieldStrategy.NOT_EMPTY)
         private String x4;
         private String x4;
-        @TableField(value = "xx5", updateStrategy = FieldStrategy.IGNORED, update = "%s+1")
+        @TableField(value = "xx5", updateStrategy = FieldStrategy.ALWAYS, update = "%s+1")
         private String x5;
         private String x5;
         @TableLogic
         @TableLogic
         private Integer deleted;
         private Integer deleted;

+ 3 - 3
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/entity/H2UserStrategy.java

@@ -44,7 +44,7 @@ public class H2UserStrategy extends SuperEntity {
     /**
     /**
      * whereStrategy = FieldStrategy.IGNORED 在拼接where条件时是在带上该条件
      * whereStrategy = FieldStrategy.IGNORED 在拼接where条件时是在带上该条件
      */
      */
-    @TableField(value = "name", whereStrategy = FieldStrategy.IGNORED)
+    @TableField(value = "name", whereStrategy = FieldStrategy.ALWAYS)
     private String name;
     private String name;
 
 
     private AgeEnum age;
     private AgeEnum age;
@@ -53,7 +53,7 @@ public class H2UserStrategy extends SuperEntity {
     private BigDecimal price;
     private BigDecimal price;
 
 
     /* 测试下划线字段命名类型, 字段填充 */
     /* 测试下划线字段命名类型, 字段填充 */
-    @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
+    @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.ALWAYS)
     private Integer testType;
     private Integer testType;
 
 
     /**
     /**
@@ -61,7 +61,7 @@ public class H2UserStrategy extends SuperEntity {
      *
      *
      * @since 2019-5-7 测试updateStrategy
      * @since 2019-5-7 测试updateStrategy
      */
      */
-    @TableField(value = "`desc`", updateStrategy = FieldStrategy.IGNORED)
+    @TableField(value = "`desc`", updateStrategy = FieldStrategy.ALWAYS)
     private String desc;
     private String desc;
 
 
     /**
     /**