Merge pull request #12 from shanzhiliu/master

代码生成模块,基于DB导入时,多个schema下有相同的表,导入异常的问题处理
This commit is contained in:
芋道源码 2021-04-07 22:47:08 +08:00 committed by GitHub
commit 3f8a5abe24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 7 deletions

View File

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

View File

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

View File

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