Browse Source

Adapt to changes in Spring Data JDBC 4.0.0 snapshots

pull/47903/head
Stéphane Nicoll 2 months ago
parent
commit
9bf712349f
  1. 20
      module/spring-boot-data-jdbc/src/main/java/org/springframework/boot/data/jdbc/autoconfigure/DataJdbcDatabaseDialect.java
  2. 10
      module/spring-boot-data-jdbc/src/main/java/org/springframework/boot/data/jdbc/autoconfigure/DataJdbcRepositoriesAutoConfiguration.java
  3. 3
      module/spring-boot-data-jdbc/src/test/java/org/springframework/boot/data/jdbc/autoconfigure/DataJdbcRepositoriesAutoConfigurationTests.java

20
module/spring-boot-data-jdbc/src/main/java/org/springframework/boot/data/jdbc/autoconfigure/DataJdbcDatabaseDialect.java

@ -20,6 +20,7 @@ import java.util.function.Function;
import org.springframework.data.jdbc.core.dialect.DialectResolver; import org.springframework.data.jdbc.core.dialect.DialectResolver;
import org.springframework.data.jdbc.core.dialect.JdbcDb2Dialect; import org.springframework.data.jdbc.core.dialect.JdbcDb2Dialect;
import org.springframework.data.jdbc.core.dialect.JdbcDialect;
import org.springframework.data.jdbc.core.dialect.JdbcH2Dialect; import org.springframework.data.jdbc.core.dialect.JdbcH2Dialect;
import org.springframework.data.jdbc.core.dialect.JdbcHsqlDbDialect; import org.springframework.data.jdbc.core.dialect.JdbcHsqlDbDialect;
import org.springframework.data.jdbc.core.dialect.JdbcMariaDbDialect; import org.springframework.data.jdbc.core.dialect.JdbcMariaDbDialect;
@ -27,7 +28,6 @@ import org.springframework.data.jdbc.core.dialect.JdbcMySqlDialect;
import org.springframework.data.jdbc.core.dialect.JdbcOracleDialect; import org.springframework.data.jdbc.core.dialect.JdbcOracleDialect;
import org.springframework.data.jdbc.core.dialect.JdbcPostgresDialect; import org.springframework.data.jdbc.core.dialect.JdbcPostgresDialect;
import org.springframework.data.jdbc.core.dialect.JdbcSqlServerDialect; import org.springframework.data.jdbc.core.dialect.JdbcSqlServerDialect;
import org.springframework.data.relational.core.dialect.Dialect;
import org.springframework.jdbc.core.JdbcOperations; import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -81,22 +81,22 @@ public enum DataJdbcDatabaseDialect {
*/ */
SQL_SERVER(JdbcSqlServerDialect.INSTANCE); SQL_SERVER(JdbcSqlServerDialect.INSTANCE);
private final Function<JdbcOperations, Dialect> dialectResolver; private final Function<JdbcOperations, JdbcDialect> jdbcDialectResolver;
DataJdbcDatabaseDialect(Class<? extends Dialect> dialectType) { DataJdbcDatabaseDialect(Class<? extends JdbcDialect> jdbcDialectType) {
this.dialectResolver = (jdbc) -> { this.jdbcDialectResolver = (jdbc) -> {
Dialect dialect = DialectResolver.getDialect(jdbc); JdbcDialect dialect = DialectResolver.getDialect(jdbc);
Assert.isInstanceOf(dialectType, dialect); Assert.isInstanceOf(jdbcDialectType, dialect);
return dialect; return dialect;
}; };
} }
DataJdbcDatabaseDialect(Dialect dialect) { DataJdbcDatabaseDialect(JdbcDialect jdbcDialect) {
this.dialectResolver = (jdbc) -> dialect; this.jdbcDialectResolver = (jdbc) -> jdbcDialect;
} }
Dialect getDialect(JdbcOperations jdbc) { JdbcDialect getJdbcDialect(JdbcOperations jdbc) {
return this.dialectResolver.apply(jdbc); return this.jdbcDialectResolver.apply(jdbc);
} }
} }

10
module/spring-boot-data-jdbc/src/main/java/org/springframework/boot/data/jdbc/autoconfigure/DataJdbcRepositoriesAutoConfiguration.java

@ -39,12 +39,12 @@ import org.springframework.data.jdbc.core.convert.DataAccessStrategy;
import org.springframework.data.jdbc.core.convert.JdbcConverter; import org.springframework.data.jdbc.core.convert.JdbcConverter;
import org.springframework.data.jdbc.core.convert.JdbcCustomConversions; import org.springframework.data.jdbc.core.convert.JdbcCustomConversions;
import org.springframework.data.jdbc.core.convert.RelationResolver; import org.springframework.data.jdbc.core.convert.RelationResolver;
import org.springframework.data.jdbc.core.dialect.JdbcDialect;
import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; import org.springframework.data.jdbc.core.mapping.JdbcMappingContext;
import org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration; import org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration;
import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories; import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories;
import org.springframework.data.jdbc.repository.config.JdbcRepositoryConfigExtension; import org.springframework.data.jdbc.repository.config.JdbcRepositoryConfigExtension;
import org.springframework.data.relational.RelationalManagedTypes; import org.springframework.data.relational.RelationalManagedTypes;
import org.springframework.data.relational.core.dialect.Dialect;
import org.springframework.data.relational.core.mapping.NamingStrategy; import org.springframework.data.relational.core.mapping.NamingStrategy;
import org.springframework.data.relational.core.mapping.Table; import org.springframework.data.relational.core.mapping.Table;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
@ -115,7 +115,7 @@ public final class DataJdbcRepositoriesAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public JdbcConverter jdbcConverter(JdbcMappingContext mappingContext, NamedParameterJdbcOperations operations, public JdbcConverter jdbcConverter(JdbcMappingContext mappingContext, NamedParameterJdbcOperations operations,
@Lazy RelationResolver relationResolver, JdbcCustomConversions conversions, Dialect dialect) { @Lazy RelationResolver relationResolver, JdbcCustomConversions conversions, JdbcDialect dialect) {
return super.jdbcConverter(mappingContext, operations, relationResolver, conversions, dialect); return super.jdbcConverter(mappingContext, operations, relationResolver, conversions, dialect);
} }
@ -138,16 +138,16 @@ public final class DataJdbcRepositoriesAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public DataAccessStrategy dataAccessStrategyBean(NamedParameterJdbcOperations operations, public DataAccessStrategy dataAccessStrategyBean(NamedParameterJdbcOperations operations,
JdbcConverter jdbcConverter, JdbcMappingContext context, Dialect dialect) { JdbcConverter jdbcConverter, JdbcMappingContext context, JdbcDialect dialect) {
return super.dataAccessStrategyBean(operations, jdbcConverter, context, dialect); return super.dataAccessStrategyBean(operations, jdbcConverter, context, dialect);
} }
@Override @Override
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public Dialect jdbcDialect(NamedParameterJdbcOperations operations) { public JdbcDialect jdbcDialect(NamedParameterJdbcOperations operations) {
DataJdbcDatabaseDialect dialect = this.properties.getDialect(); DataJdbcDatabaseDialect dialect = this.properties.getDialect();
return (dialect != null) ? dialect.getDialect(operations.getJdbcOperations()) return (dialect != null) ? dialect.getJdbcDialect(operations.getJdbcOperations())
: super.jdbcDialect(operations); : super.jdbcDialect(operations);
} }

3
module/spring-boot-data-jdbc/src/test/java/org/springframework/boot/data/jdbc/autoconfigure/DataJdbcRepositoriesAutoConfigurationTests.java

@ -41,6 +41,7 @@ import org.springframework.data.jdbc.core.JdbcAggregateTemplate;
import org.springframework.data.jdbc.core.convert.DataAccessStrategy; import org.springframework.data.jdbc.core.convert.DataAccessStrategy;
import org.springframework.data.jdbc.core.convert.JdbcConverter; import org.springframework.data.jdbc.core.convert.JdbcConverter;
import org.springframework.data.jdbc.core.convert.JdbcCustomConversions; import org.springframework.data.jdbc.core.convert.JdbcCustomConversions;
import org.springframework.data.jdbc.core.dialect.JdbcDialect;
import org.springframework.data.jdbc.core.dialect.JdbcPostgresDialect; import org.springframework.data.jdbc.core.dialect.JdbcPostgresDialect;
import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; import org.springframework.data.jdbc.core.mapping.JdbcMappingContext;
import org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration; import org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration;
@ -193,7 +194,7 @@ class DataJdbcRepositoriesAutoConfigurationTests {
@Test @Test
void allowsUserToDefineCustomDialect() { void allowsUserToDefineCustomDialect() {
allowsUserToDefineCustomBean(DialectConfiguration.class, Dialect.class, "customDialect"); allowsUserToDefineCustomBean(DialectConfiguration.class, JdbcDialect.class, "customDialect");
} }
@Test @Test

Loading…
Cancel
Save