Fix issues 792 NullPointerException

This commit is contained in:
SwallowGG
2023-11-11 19:09:46 +08:00
parent 097900a04a
commit 06e779da8c
2 changed files with 39 additions and 31 deletions

View File

@ -230,6 +230,10 @@ public class PostgreSQLMetaData extends DefaultMetaService implements MetaData {
TableIndex tableIndex = map.get(keyName); TableIndex tableIndex = map.get(keyName);
if (tableIndex != null) { if (tableIndex != null) {
List<TableIndexColumn> columnList = tableIndex.getColumnList(); List<TableIndexColumn> columnList = tableIndex.getColumnList();
if(columnList == null){
columnList = new ArrayList<>();
tableIndex.setColumnList(columnList);
}
columnList.add(getTableIndexColumn(resultSet)); columnList.add(getTableIndexColumn(resultSet));
columnList = columnList.stream().sorted(Comparator.comparing(TableIndexColumn::getOrdinalPosition)) columnList = columnList.stream().sorted(Comparator.comparing(TableIndexColumn::getOrdinalPosition))
.collect(Collectors.toList()); .collect(Collectors.toList());

View File

@ -392,43 +392,47 @@ public class DlTemplateServiceImpl implements DlTemplateService {
} }
private List<Header> setColumnInfo(List<Header> headers, String tableName, String schemaName, String databaseName) { private List<Header> setColumnInfo(List<Header> headers, String tableName, String schemaName, String databaseName) {
TableQueryParam tableQueryParam = new TableQueryParam(); try {
tableQueryParam.setTableName(MetaNameUtils.getMetaName(tableName)); TableQueryParam tableQueryParam = new TableQueryParam();
tableQueryParam.setSchemaName(schemaName); tableQueryParam.setTableName(MetaNameUtils.getMetaName(tableName));
tableQueryParam.setDatabaseName(databaseName); tableQueryParam.setSchemaName(schemaName);
tableQueryParam.setRefresh(true); tableQueryParam.setDatabaseName(databaseName);
List<TableColumn> columns = tableService.queryColumns(tableQueryParam); tableQueryParam.setRefresh(true);
if (CollectionUtils.isEmpty(columns)) { List<TableColumn> columns = tableService.queryColumns(tableQueryParam);
return headers; if (CollectionUtils.isEmpty(columns)) {
} return headers;
Map<String, TableColumn> columnMap = columns.stream().collect(Collectors.toMap(TableColumn::getName, tableColumn -> tableColumn)); }
Map<String, TableColumn> columnMap = columns.stream().collect(Collectors.toMap(TableColumn::getName, tableColumn -> tableColumn));
List<TableIndex> tableIndices = tableService.queryIndexes(tableQueryParam); List<TableIndex> tableIndices = tableService.queryIndexes(tableQueryParam);
if (!CollectionUtils.isEmpty(tableIndices)) { if (!CollectionUtils.isEmpty(tableIndices)) {
for (TableIndex tableIndex : tableIndices) { for (TableIndex tableIndex : tableIndices) {
if ("PRIMARY".equalsIgnoreCase(tableIndex.getType())) { if ("PRIMARY".equalsIgnoreCase(tableIndex.getType())) {
List<TableIndexColumn> columnList = tableIndex.getColumnList(); List<TableIndexColumn> columnList = tableIndex.getColumnList();
if (!CollectionUtils.isEmpty(columnList)) { if (!CollectionUtils.isEmpty(columnList)) {
for (TableIndexColumn tableIndexColumn : columnList) { for (TableIndexColumn tableIndexColumn : columnList) {
TableColumn tableColumn = columnMap.get(tableIndexColumn.getColumnName()); TableColumn tableColumn = columnMap.get(tableIndexColumn.getColumnName());
if (tableColumn != null) { if (tableColumn != null) {
tableColumn.setPrimaryKey(true); tableColumn.setPrimaryKey(true);
}
} }
} }
} }
} }
} }
} for (Header header : headers) {
for (Header header : headers) { TableColumn tableColumn = columnMap.get(header.getName());
TableColumn tableColumn = columnMap.get(header.getName()); if (tableColumn != null) {
if (tableColumn != null) { header.setPrimaryKey(tableColumn.getPrimaryKey());
header.setPrimaryKey(tableColumn.getPrimaryKey()); header.setComment(tableColumn.getComment());
header.setComment(tableColumn.getComment()); header.setDefaultValue(tableColumn.getDefaultValue());
header.setDefaultValue(tableColumn.getDefaultValue()); header.setNullable(tableColumn.getNullable());
header.setNullable(tableColumn.getNullable()); header.setColumnSize(tableColumn.getColumnSize());
header.setColumnSize(tableColumn.getColumnSize()); header.setDecimalDigits(tableColumn.getDecimalDigits());
header.setDecimalDigits(tableColumn.getDecimalDigits()); }
} }
}catch (Exception e){
log.error("setColumnInfo error:",e);
} }
return headers; return headers;
} }