浏览代码

优化代码生成器手动合并pulls/272

hubin 2 年之前
父节点
当前提交
d19c360411

+ 3 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/query/DefaultQuery.java

@@ -121,10 +121,12 @@ public class DefaultQuery extends AbstractDatabaseQuery {
             String propertyName = entity.getNameConvert().propertyNameConvert(field);
             // 设置字段的元数据信息
             TableField.MetaInfo metaInfo = new TableField.MetaInfo(columnInfo, tableInfo);
-            IColumnType columnType = typeRegistry.getColumnType(metaInfo);
+            IColumnType columnType;
             ITypeConvertHandler typeConvertHandler = dataSourceConfig.getTypeConvertHandler();
             if (typeConvertHandler != null) {
                 columnType = typeConvertHandler.convert(globalConfig, typeRegistry, metaInfo);
+            } else {
+                columnType = typeRegistry.getColumnType(metaInfo);
             }
             field.setPropertyName(propertyName, columnType);
             field.setMetaInfo(metaInfo);

+ 3 - 2
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/query/SQLQuery.java

@@ -99,7 +99,8 @@ public class SQLQuery extends AbstractDatabaseQuery {
             Map<String, DatabaseMetaDataWrapper.Column> columnsInfoMap = databaseMetaDataWrapper.getColumnsInfo(tableName, false);
             String tableFieldsSql = dbQuery.tableFieldsSql(tableName);
             Set<String> h2PkColumns = new HashSet<>();
-            if (DbType.H2 == dbType || DbType.LEALONE == dbType) {
+            boolean isH2OrLEALONEDbType = (DbType.H2 == dbType || DbType.LEALONE == dbType);
+            if (isH2OrLEALONEDbType) {
                 dbQuery.execute(String.format(H2Query.PK_QUERY_SQL, tableName), result -> {
                     String primaryKey = result.getStringResult(dbQuery.fieldKey());
                     if (Boolean.parseBoolean(primaryKey)) {
@@ -115,7 +116,7 @@ public class SQLQuery extends AbstractDatabaseQuery {
                 // 设置字段的元数据信息
                 TableField.MetaInfo metaInfo = new TableField.MetaInfo(columnInfo, tableInfo);
                 // 避免多重主键设置,目前只取第一个找到ID,并放到list中的索引为0的位置
-                boolean isId = (DbType.H2 == dbType || DbType.LEALONE == dbType) ? h2PkColumns.contains(columnName) : result.isPrimaryKey();
+                boolean isId = isH2OrLEALONEDbType ? h2PkColumns.contains(columnName) : result.isPrimaryKey();
                 // 处理ID
                 if (isId) {
                     field.primaryKey(dbQuery.isKeyIdentity(result.getResultSet()));