Browse Source

Merge branch '6.2.x'

# Conflicts:
#	spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java
pull/35250/head
Juergen Hoeller 6 months ago
parent
commit
2a0a1fa67a
  1. 14
      spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java
  2. 18
      spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/PostgresTableMetaDataProvider.java

14
spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java

@ -218,17 +218,21 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { @@ -218,17 +218,21 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
}
/**
* This implementation delegates to {@link #catalogNameToUse}.
*/
@Override
public @Nullable String metaDataCatalogNameToUse(@Nullable String catalogName) {
return catalogNameToUse(catalogName);
}
/**
* This implementation delegates to {@link #schemaNameToUse}.
* @see #getDefaultSchema()
*/
@Override
public @Nullable String metaDataSchemaNameToUse(@Nullable String schemaName) {
if (schemaName == null) {
return schemaNameToUse(getDefaultSchema());
}
return schemaNameToUse(schemaName);
return schemaNameToUse(schemaName != null ? schemaName : getDefaultSchema());
}
/**
@ -389,7 +393,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { @@ -389,7 +393,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
try {
tableColumns = databaseMetaData.getColumns(
metaDataCatalogName, metaDataSchemaName, metaDataTableName, null);
while (tableColumns.next()) {
while (tableColumns != null && tableColumns.next()) {
String columnName = tableColumns.getString("COLUMN_NAME");
int dataType = tableColumns.getInt("DATA_TYPE");
if (dataType == Types.DECIMAL) {

18
spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/PostgresTableMetaDataProvider.java

@ -19,12 +19,16 @@ package org.springframework.jdbc.core.metadata; @@ -19,12 +19,16 @@ package org.springframework.jdbc.core.metadata;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import org.springframework.lang.Nullable;
/**
* The PostgreSQL specific implementation of {@link TableMetaDataProvider}.
* Supports a feature for retrieving generated keys without the JDBC 3.0
* {@code getGeneratedKeys} support.
* {@code getGeneratedKeys} support. Also, it processes PostgreSQL-returned
* catalog and schema names from {@code DatabaseMetaData} in the given case.
*
* @author Thomas Risberg
* @author Juergen Hoeller
* @since 2.5
*/
public class PostgresTableMetaDataProvider extends GenericTableMetaDataProvider {
@ -34,6 +38,18 @@ public class PostgresTableMetaDataProvider extends GenericTableMetaDataProvider @@ -34,6 +38,18 @@ public class PostgresTableMetaDataProvider extends GenericTableMetaDataProvider
}
@Override
@Nullable
public String metaDataCatalogNameToUse(@Nullable String catalogName) {
return catalogName;
}
@Override
@Nullable
public String metaDataSchemaNameToUse(@Nullable String schemaName) {
return (schemaName != null ? schemaName : getDefaultSchema());
}
@Override
public boolean isGetGeneratedKeysSimulated() {
return true;

Loading…
Cancel
Save