mirror of
https://github.com/dataease/dataease.git
synced 2026-06-09 21:27:21 +08:00
fix:【数据源】oracle数据源会显示回收站中元数据,隐藏
This commit is contained in:
@@ -65,6 +65,7 @@ import java.io.*;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static io.dataease.datasource.server.DatasourceTaskServer.ScheduleType.MANUAL;
|
||||
@@ -74,6 +75,8 @@ import static io.dataease.datasource.server.DatasourceTaskServer.ScheduleType.RI
|
||||
@RestController
|
||||
@RequestMapping("/datasource")
|
||||
public class DatasourceServer implements DatasourceApi {
|
||||
private static final Pattern ORACLE_RECYCLE_BIN_TABLE_PATTERN = Pattern.compile("^BIN\\$.*\\$[0-9]+$", Pattern.CASE_INSENSITIVE);
|
||||
|
||||
@Resource
|
||||
private CoreDatasourceMapper datasourceMapper;
|
||||
@Resource
|
||||
@@ -757,7 +760,26 @@ public class DatasourceServer implements DatasourceApi {
|
||||
return ExcelUtils.getTables(datasourceRequest);
|
||||
}
|
||||
Provider provider = ProviderFactory.getProvider(datasourceDTO.getType());
|
||||
return provider.getTables(datasourceRequest);
|
||||
List<DatasetTableDTO> tables = provider.getTables(datasourceRequest);
|
||||
if (StringUtils.equalsIgnoreCase(coreDatasource.getType(), DatasourceConfiguration.DatasourceType.oracle.name())) {
|
||||
return tables.stream().filter(table -> !isOracleRecycleBinTable(table)).collect(Collectors.toList());
|
||||
}
|
||||
return tables;
|
||||
}
|
||||
|
||||
private boolean isOracleRecycleBinTable(DatasetTableDTO table) {
|
||||
if (table == null) {
|
||||
return false;
|
||||
}
|
||||
return isOracleRecycleBinName(table.getTableName()) || isOracleRecycleBinName(table.getName());
|
||||
}
|
||||
|
||||
private boolean isOracleRecycleBinName(String tableName) {
|
||||
if (StringUtils.isBlank(tableName)) {
|
||||
return false;
|
||||
}
|
||||
String normalized = StringUtils.removeEnd(StringUtils.removeStart(tableName.trim(), "\""), "\"");
|
||||
return ORACLE_RECYCLE_BIN_TABLE_PATTERN.matcher(normalized).matches();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user