private List<ColumnMetaData> getColumnMetaDataList(final Connection connection, final String catalog, final String actualTableName) throws SQLException { List<ColumnMetaData> result = new LinkedList<>(); Collection<String> primaryKeys = getPrimaryKeys(connection, catalog, actualTableName); try (ResultSet resultSet = connection.getMetaData().getColumns(catalog, null, actualTableName, "%")) { while (resultSet.next()) { String columnName = resultSet.getString("COLUMN_NAME"); String columnType = resultSet.getString("TYPE_NAME"); result.add(new ColumnMetaData(columnName, columnType, primaryKeys.contains(columnName))); } } return result; }
private static List<ColumnMetaData> createColumnMetaDataList(final Collection<ColumnDefinitionSegment> addedColumnDefinitions, final boolean dropPrimaryKey) { List<ColumnMetaData> result = new LinkedList<>(); for (ColumnDefinitionSegment each : addedColumnDefinitions) { result.add(new ColumnMetaData(each.getColumnName(), each.getDataType(), !dropPrimaryKey && each.isPrimaryKey())); } return result; }
@Override public ColumnMetaData apply(final ColumnDefinitionSegment input) { return new ColumnMetaData(input.getColumnName(), input.getDataType(), input.isPrimaryKey()); } }));
private static List<ColumnMetaData> createColumnMetaDataList( final Map<String, ColumnDefinitionSegment> modifiedColumnDefinitions, final boolean dropPrimaryKey, final TableMetaData oldTableMetaData) { List<ColumnMetaData> result = new LinkedList<>(); for (ColumnMetaData each : oldTableMetaData.getColumns().values()) { ColumnMetaData columnMetaData; if (modifiedColumnDefinitions.containsKey(each.getColumnName())) { ColumnDefinitionSegment columnDefinition = modifiedColumnDefinitions.get(each.getColumnName()); columnMetaData = new ColumnMetaData(columnDefinition.getColumnName(), columnDefinition.getDataType(), !dropPrimaryKey && columnDefinition.isPrimaryKey()); } else { columnMetaData = new ColumnMetaData(each.getColumnName(), each.getDataType(), !dropPrimaryKey && each.isPrimaryKey()); } result.add(columnMetaData); } return result; }