From 95428b7022f7c32c94582a0f9f8938db0b66df6a Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 20 Feb 2020 10:20:46 +0100 Subject: [PATCH] DATAJDBC-492 - Use JdbcMappingContext in AbstractJdbcConfiguration instead of RelationalMappingContext. We use now a more concrete type in the configuration to avoid clashes when Spring Data R2DBC is on the class path. --- .../repository/config/AbstractJdbcConfiguration.java | 12 +++++------- .../repository/config/MyBatisJdbcConfiguration.java | 5 +++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/AbstractJdbcConfiguration.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/AbstractJdbcConfiguration.java index 20692e722a..58e20d6c64 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/AbstractJdbcConfiguration.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/AbstractJdbcConfiguration.java @@ -53,10 +53,8 @@ @Configuration(proxyBeanMethods = false) public class AbstractJdbcConfiguration { - // private @Autowired ObjectProvider - /** - * Register a {@link RelationalMappingContext} and apply an optional {@link NamingStrategy}. + * Register a {@link JdbcMappingContext} and apply an optional {@link NamingStrategy}. * * @param namingStrategy optional {@link NamingStrategy}. Use {@link NamingStrategy#INSTANCE} as fallback. * @param customConversions see {@link #jdbcCustomConversions()}. @@ -81,7 +79,7 @@ public JdbcMappingContext jdbcMappingContext(Optional namingStra * @return must not be {@literal null}. */ @Bean - public JdbcConverter jdbcConverter(RelationalMappingContext mappingContext, NamedParameterJdbcOperations operations, + public JdbcConverter jdbcConverter(JdbcMappingContext mappingContext, NamedParameterJdbcOperations operations, @Lazy RelationResolver relationResolver, JdbcCustomConversions conversions) { DefaultJdbcTypeFactory jdbcTypeFactory = new DefaultJdbcTypeFactory(operations.getJdbcOperations()); @@ -92,7 +90,7 @@ public JdbcConverter jdbcConverter(RelationalMappingContext mappingContext, Name /** * Register custom {@link Converter}s in a {@link JdbcCustomConversions} object if required. These * {@link JdbcCustomConversions} will be registered with the - * {@link #jdbcConverter(RelationalMappingContext, NamedParameterJdbcOperations, RelationResolver, JdbcCustomConversions)}. + * {@link #jdbcConverter(JdbcMappingContext, NamedParameterJdbcOperations, RelationResolver, JdbcCustomConversions)}. * Returns an empty {@link JdbcCustomConversions} instance by default. * * @return will never be {@literal null}. @@ -113,7 +111,7 @@ public JdbcCustomConversions jdbcCustomConversions() { */ @Bean public JdbcAggregateTemplate jdbcAggregateTemplate(ApplicationContext applicationContext, - RelationalMappingContext mappingContext, JdbcConverter converter, DataAccessStrategy dataAccessStrategy) { + JdbcMappingContext mappingContext, JdbcConverter converter, DataAccessStrategy dataAccessStrategy) { return new JdbcAggregateTemplate(applicationContext, mappingContext, converter, dataAccessStrategy); } @@ -127,7 +125,7 @@ public JdbcAggregateTemplate jdbcAggregateTemplate(ApplicationContext applicatio */ @Bean public DataAccessStrategy dataAccessStrategyBean(NamedParameterJdbcOperations operations, JdbcConverter jdbcConverter, - RelationalMappingContext context, Dialect dialect) { + JdbcMappingContext context, Dialect dialect) { return new DefaultDataAccessStrategy(new SqlGeneratorSource(context, jdbcConverter, dialect), context, jdbcConverter, operations); } diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/MyBatisJdbcConfiguration.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/MyBatisJdbcConfiguration.java index c5cc23d52d..d628108c1b 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/MyBatisJdbcConfiguration.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/MyBatisJdbcConfiguration.java @@ -21,6 +21,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.jdbc.core.convert.DataAccessStrategy; import org.springframework.data.jdbc.core.convert.JdbcConverter; +import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; import org.springframework.data.jdbc.mybatis.MyBatisDataAccessStrategy; import org.springframework.data.relational.core.dialect.Dialect; import org.springframework.data.relational.core.mapping.RelationalMappingContext; @@ -39,12 +40,12 @@ public class MyBatisJdbcConfiguration extends AbstractJdbcConfiguration { /* * (non-Javadoc) - * @see org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration#dataAccessStrategyBean(org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations, org.springframework.data.jdbc.core.convert.JdbcConverter, org.springframework.data.relational.core.mapping.RelationalMappingContext) + * @see org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration#dataAccessStrategyBean(org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations, org.springframework.data.jdbc.core.convert.JdbcConverter, org.springframework.data.jdbc.core.mapping.JdbcMappingContext) */ @Bean @Override public DataAccessStrategy dataAccessStrategyBean(NamedParameterJdbcOperations operations, JdbcConverter jdbcConverter, - RelationalMappingContext context, Dialect dialect) { + JdbcMappingContext context, Dialect dialect) { return MyBatisDataAccessStrategy.createCombinedAccessStrategy(context, jdbcConverter, operations, session, dialect); }