mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-29 18:53:12 +08:00
Fix issues 792 NullPointerException
This commit is contained in:
@ -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());
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user