浏览代码

允许字段策略独立设置,默认为 naming 策略

= 7 年之前
父节点
当前提交
f1734b5de6

+ 18 - 0
mybatis-plus-generate/src/main/java/com/baomidou/mybatisplus/generator/config/StrategyConfig.java

@@ -45,6 +45,11 @@ public class StrategyConfig {
      * 数据库表映射到实体的命名策略
      */
     private NamingStrategy naming = NamingStrategy.nochange;
+    /**
+     * 数据库表字段映射到实体的命名策略<br/>
+     * 未指定按照 naming 执行
+     */
+    private NamingStrategy columnNaming = null;
 
     /**
      * 表前缀
@@ -211,6 +216,19 @@ public class StrategyConfig {
         return this;
     }
 
+    public NamingStrategy getColumnNaming() {
+        if (null == columnNaming) {
+            // 未指定以 naming 策略为准
+            return naming;
+        }
+        return columnNaming;
+    }
+
+    public StrategyConfig setColumnNaming(NamingStrategy columnNaming) {
+        this.columnNaming = columnNaming;
+        return this;
+    }
+
     public String[] getTablePrefix() {
         return tablePrefix;
     }

+ 3 - 5
mybatis-plus-generate/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java

@@ -427,8 +427,6 @@ public class ConfigBuilder {
 
         //不存在的表名
         Set<String> notExistTables = new HashSet<>();
-
-        NamingStrategy strategy = config.getNaming();
         PreparedStatement preparedStatement = null;
         try {
             String tableCommentsSql = querySQL.getTableCommentsSql();
@@ -468,7 +466,7 @@ public class ConfigBuilder {
                     if (isInclude) {
                         for (String includeTab : config.getInclude()) {
                             if (includeTab.equalsIgnoreCase(tableName)) {
-                                includeTableList.add(this.convertTableFields(tableInfo, strategy));
+                                includeTableList.add(tableInfo);
                             } else {
                                 notExistTables.add(includeTab);
                             }
@@ -508,7 +506,7 @@ public class ConfigBuilder {
              * 性能优化,只处理需执行表字段 github issues/219
              */
             for (TableInfo ti : includeTableList) {
-                this.convertTableFields(ti, strategy);
+                this.convertTableFields(ti, config.getColumnNaming());
             }
         } catch (SQLException e) {
             e.printStackTrace();
@@ -525,7 +523,7 @@ public class ConfigBuilder {
                 e.printStackTrace();
             }
         }
-        return processTable(includeTableList, strategy, config);
+        return processTable(includeTableList, config.getNaming(), config);
     }
 
 

+ 1 - 0
mybatis-plus-generate/src/test/java/com/baomidou/mybatisplus/test/generator/PostgreSQLGenerator.java

@@ -77,6 +77,7 @@ public class PostgreSQLGenerator extends GeneratorTest {
         // strategy.setDbColumnUnderline(true);//全局下划线命名
         strategy.setTablePrefix(new String[]{"bmd_", "mp_"});// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
+        strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 允许字段策略独立设置,默认为 naming 策略
         // strategy.setInclude(new String[] { "user" }); // 需要生成的表
         // strategy.setExclude(new String[]{"test"}); // 排除生成的表
         // 自定义实体父类