Przeglądaj źródła

test and 优化

miemie 5 lat temu
rodzic
commit
84018e166c

+ 1 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/methods/Insert.java

@@ -41,7 +41,7 @@ public class Insert extends AbstractMethod {
     public MappedStatement injectMappedStatement(Class<?> mapperClass, Class<?> modelClass, TableInfo tableInfo) {
         KeyGenerator keyGenerator = new NoKeyGenerator();
         SqlMethod sqlMethod = SqlMethod.INSERT_ONE;
-        String columnScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlColumnMaybeIf(),
+        String columnScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlColumnMaybeIf(null),
             LEFT_BRACKET, RIGHT_BRACKET, null, COMMA);
         String valuesScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlPropertyMaybeIf(null),
             LEFT_BRACKET, RIGHT_BRACKET, null, COMMA);

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

@@ -335,11 +335,12 @@ public class TableFieldInfo implements Constants {
      * @return sql 脚本片段
      */
     public String getInsertSqlPropertyMaybeIf(final String prefix) {
-        String sqlScript = getInsertSqlProperty(prefix);
+        final String newPrefix = prefix == null ? EMPTY : prefix;
+        String sqlScript = getInsertSqlProperty(newPrefix);
         if (withInsertFill) {
             return sqlScript;
         }
-        return convertIf(sqlScript, property, insertStrategy);
+        return convertIf(sqlScript, newPrefix + property, insertStrategy);
     }
 
     /**
@@ -364,12 +365,13 @@ public class TableFieldInfo implements Constants {
      *
      * @return sql 脚本片段
      */
-    public String getInsertSqlColumnMaybeIf() {
+    public String getInsertSqlColumnMaybeIf(final String prefix) {
+        final String newPrefix = prefix == null ? EMPTY : prefix;
         final String sqlScript = getInsertSqlColumn();
         if (withInsertFill) {
             return sqlScript;
         }
-        return convertIf(sqlScript, property, insertStrategy);
+        return convertIf(sqlScript, newPrefix + property, insertStrategy);
     }
 
     /**
@@ -406,11 +408,11 @@ public class TableFieldInfo implements Constants {
             // 不进行 if 包裹
             return sqlSet;
         }
-        return convertIf(sqlSet, convertIfProperty(prefix, property), updateStrategy);
+        return convertIf(sqlSet, convertIfProperty(newPrefix, property), updateStrategy);
     }
 
     private String convertIfProperty(String prefix, String property) {
-        return StringUtils.isNotBlank(prefix) ? prefix.substring(0, prefix.length() - 1) + "['" + property + "']" : property;
+        return prefix != null ? prefix.substring(0, prefix.length() - 1) + "['" + property + "']" : property;
     }
 
     /**

+ 3 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfo.java

@@ -301,8 +301,9 @@ public class TableInfo implements Constants {
      *
      * @return sql 脚本片段
      */
-    public String getAllInsertSqlColumnMaybeIf() {
-        return getKeyInsertSqlColumn(true) + fieldList.stream().map(TableFieldInfo::getInsertSqlColumnMaybeIf)
+    public String getAllInsertSqlColumnMaybeIf(final String prefix) {
+        final String newPrefix = prefix == null ? EMPTY : prefix;
+        return getKeyInsertSqlColumn(true) + fieldList.stream().map(i -> i.getInsertSqlColumnMaybeIf(newPrefix))
             .filter(Objects::nonNull).collect(joining(NEWLINE));
     }
 

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

@@ -50,9 +50,9 @@ class EncryptTest {
     void testTableInfoHelper() {
         TableInfo info = TableInfoHelper.initTableInfo(new MapperBuilderAssistant(new MybatisConfiguration(), ""), Xx.class);
         System.out.println("----------- AllInsertSqlColumn -----------");
-        System.out.println(info.getAllInsertSqlColumnMaybeIf());
+        System.out.println(info.getAllInsertSqlColumnMaybeIf("et."));
         System.out.println("----------- AllInsertSqlProperty -----------");
-        System.out.println(info.getAllInsertSqlPropertyMaybeIf(null));
+        System.out.println(info.getAllInsertSqlPropertyMaybeIf("et."));
         System.out.println("----------- AllSqlSet -----------");
         System.out.println(info.getAllSqlSet(true, "ew.entity."));
         System.out.println("----------- AllSqlWhere -----------");

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/injector/methods/Upsert.java

@@ -37,7 +37,7 @@ public class Upsert extends AbstractMethod {
     public MappedStatement injectMappedStatement(Class<?> mapperClass, Class<?> modelClass, TableInfo tableInfo) {
         KeyGenerator keyGenerator = new NoKeyGenerator();
         SqlMethod sqlMethod = SqlMethod.UPSERT_ONE;
-        String columnScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlColumnMaybeIf(),
+        String columnScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlColumnMaybeIf(null),
             LEFT_BRACKET, RIGHT_BRACKET, null, COMMA);
         String valuesScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlPropertyMaybeIf(null),
             LEFT_BRACKET, RIGHT_BRACKET, null, COMMA);