Prechádzať zdrojové kódy

1.代码生成模块,基于DB导入时,多个schema下有相同的表,导入异常的问题处理.

shanzhiliu 4 rokov pred
rodič
commit
cb2570c086

+ 3 - 2
src/main/java/cn/iocoder/dashboard/modules/tool/dal/mysql/codegen/ToolSchemaColumnMapper.java

@@ -10,9 +10,10 @@ import java.util.List;
 @Mapper
 public interface ToolSchemaColumnMapper extends BaseMapperX<ToolSchemaColumnDO> {
 
-    default List<ToolSchemaColumnDO> selectListByTableName(String tableName) {
+    default List<ToolSchemaColumnDO> selectListByTableName(String tableSchema,String tableName) {
         return selectList(new QueryWrapper<ToolSchemaColumnDO>().eq("table_name", tableName)
-            .orderByAsc("ordinal_position"));
+                .eq("table_schema", tableSchema)
+                .orderByAsc("ordinal_position"));
     }
 
 }

+ 3 - 2
src/main/java/cn/iocoder/dashboard/modules/tool/dal/mysql/codegen/ToolSchemaTableMapper.java

@@ -22,8 +22,9 @@ public interface ToolSchemaTableMapper extends BaseMapperX<ToolSchemaTableDO> {
         return selectList(new QueryWrapper<ToolSchemaTableDO>().eq("table_schema", tableSchema));
     }
 
-    default ToolSchemaTableDO selectByTableName(String tableName) {
-        return selectOne(new QueryWrapper<ToolSchemaTableDO>().eq("table_name", tableName));
+    default ToolSchemaTableDO selectByTableName1(String tableSchema,String tableName) {
+        return selectOne(new QueryWrapper<ToolSchemaTableDO>().eq("table_schema",tableSchema)
+                        .eq("table_name", tableName));
     }
 
 }

+ 6 - 3
src/main/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenServiceImpl.java

@@ -101,9 +101,11 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
 
     @Override
     public Long createCodegen(String tableName) {
+        //获取当前schema
+        String tableSchema = codegenProperties.getDbSchemas().iterator().next();
         // 从数据库中,获得数据库表结构
-        ToolSchemaTableDO schemaTable = schemaTableMapper.selectByTableName(tableName);
-        List<ToolSchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(tableName);
+        ToolSchemaTableDO schemaTable = schemaTableMapper.selectByTableName1(tableSchema,tableName);
+        List<ToolSchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(tableSchema,tableName);
         // 导入
         return this.createCodegen0(ToolCodegenImportTypeEnum.DB, schemaTable, schemaColumns);
     }
@@ -141,8 +143,9 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
         if (table == null) {
             throw exception(CODEGEN_TABLE_NOT_EXISTS);
         }
+        String tableSchema = codegenProperties.getDbSchemas().iterator().next();
         // 从数据库中,获得数据库表结构
-        List<ToolSchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(table.getTableName());
+        List<ToolSchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(tableSchema,table.getTableName());
 
         // 执行同步
         this.syncCodegen0(tableId, schemaColumns);