diff --git a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java index 73a59e71..24afdc4e 100644 --- a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java +++ b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/aggregate/AggregateConfiguration.java @@ -21,25 +21,15 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import javax.sql.DataSource; - import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.converter.Converter; -import org.springframework.data.jdbc.core.DataAccessStrategy; -import org.springframework.data.jdbc.core.DefaultDataAccessStrategy; -import org.springframework.data.jdbc.core.DelegatingDataAccessStrategy; -import org.springframework.data.jdbc.core.SqlGeneratorSource; import org.springframework.data.jdbc.mapping.event.BeforeSave; import org.springframework.data.jdbc.mapping.model.ConversionCustomizer; -import org.springframework.data.jdbc.mapping.model.DefaultNamingStrategy; -import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mapping.model.JdbcPersistentProperty; import org.springframework.data.jdbc.mapping.model.NamingStrategy; import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.lang.Nullable; /** @@ -92,29 +82,30 @@ public class AggregateConfiguration { Map keyColumnAliases = new HashMap(); keyColumnAliases.put("models", "name"); - return new DefaultNamingStrategy() { + return new NamingStrategy() { @Override public String getColumnName(JdbcPersistentProperty property) { - String defaultName = super.getColumnName(property); + String defaultName = NamingStrategy.super.getColumnName(property); String key = getTableName(property.getOwner().getType()) + "." + defaultName; return columnAliases.computeIfAbsent(key, __ -> defaultName); } @Override public String getTableName(Class type) { - return tableAliases.computeIfAbsent(super.getTableName(type), key -> key); + return tableAliases.computeIfAbsent(NamingStrategy.super.getTableName(type), key -> key); } @Override public String getReverseColumnName(JdbcPersistentProperty property) { - return reverseColumnAliases.computeIfAbsent(property.getName(), __ -> super.getReverseColumnName(property)); + return reverseColumnAliases.computeIfAbsent(property.getName(), + __ -> NamingStrategy.super.getReverseColumnName(property)); } @Override public String getKeyColumn(JdbcPersistentProperty property) { - return keyColumnAliases.computeIfAbsent(property.getName(), __ -> super.getKeyColumn(property)); + return keyColumnAliases.computeIfAbsent(property.getName(), __ -> NamingStrategy.super.getKeyColumn(property)); } }; } @@ -140,21 +131,4 @@ public class AggregateConfiguration { } }); } - - // temporary workaround for https://jira.spring.io/browse/DATAJDBC-155 - @Bean - DataAccessStrategy defaultDataAccessStrategy(JdbcMappingContext context, DataSource dataSource) { - - NamedParameterJdbcOperations operations = new NamedParameterJdbcTemplate(dataSource); - DelegatingDataAccessStrategy accessStrategy = new DelegatingDataAccessStrategy(); - - accessStrategy.setDelegate(new DefaultDataAccessStrategy( // - new SqlGeneratorSource(context), // - operations, // - context, // - accessStrategy) // - ); - - return accessStrategy; - } } diff --git a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/simpleentity/CategoryConfiguration.java b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/simpleentity/CategoryConfiguration.java index 249bc82b..26d9550c 100644 --- a/jdbc/basics/src/main/java/example/springdata/jdbc/basics/simpleentity/CategoryConfiguration.java +++ b/jdbc/basics/src/main/java/example/springdata/jdbc/basics/simpleentity/CategoryConfiguration.java @@ -15,22 +15,13 @@ */ package example.springdata.jdbc.basics.simpleentity; -import javax.sql.DataSource; - import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.jdbc.core.DataAccessStrategy; -import org.springframework.data.jdbc.core.DefaultDataAccessStrategy; -import org.springframework.data.jdbc.core.DelegatingDataAccessStrategy; -import org.springframework.data.jdbc.core.SqlGeneratorSource; import org.springframework.data.jdbc.mapping.event.BeforeSave; import org.springframework.data.jdbc.mapping.event.JdbcEvent; -import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; /** * Contains infrastructure necessary for creating repositories and two listeners. @@ -66,21 +57,4 @@ public class CategoryConfiguration { } }; } - - // temporary workaround for https://jira.spring.io/browse/DATAJDBC-155 - @Bean - DataAccessStrategy defaultDataAccessStrategy(JdbcMappingContext context, DataSource dataSource) { - - NamedParameterJdbcOperations operations = new NamedParameterJdbcTemplate(dataSource); - DelegatingDataAccessStrategy accessStrategy = new DelegatingDataAccessStrategy(); - - accessStrategy.setDelegate(new DefaultDataAccessStrategy( // - new SqlGeneratorSource(context), // - operations, // - context, // - accessStrategy) // - ); - - return accessStrategy; - } } diff --git a/jdbc/mybatis/src/main/java/example/springdata/jdbc/mybatis/MyBatisConfiguration.java b/jdbc/mybatis/src/main/java/example/springdata/jdbc/mybatis/MyBatisConfiguration.java index 6326847a..b7cd89cd 100644 --- a/jdbc/mybatis/src/main/java/example/springdata/jdbc/mybatis/MyBatisConfiguration.java +++ b/jdbc/mybatis/src/main/java/example/springdata/jdbc/mybatis/MyBatisConfiguration.java @@ -15,23 +15,13 @@ */ package example.springdata.jdbc.mybatis; -import static java.util.Arrays.*; - -import javax.sql.DataSource; - import org.apache.ibatis.session.SqlSession; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.jdbc.core.CascadingDataAccessStrategy; import org.springframework.data.jdbc.core.DataAccessStrategy; -import org.springframework.data.jdbc.core.DefaultDataAccessStrategy; -import org.springframework.data.jdbc.core.DelegatingDataAccessStrategy; -import org.springframework.data.jdbc.core.SqlGeneratorSource; import org.springframework.data.jdbc.mapping.model.JdbcMappingContext; import org.springframework.data.jdbc.mybatis.MyBatisDataAccessStrategy; import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; -import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; /** * @author Jens Schauder @@ -40,27 +30,8 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; @EnableJdbcRepositories public class MyBatisConfiguration { - // temporary workaround for https://jira.spring.io/browse/DATAJDBC-155 @Bean - DataAccessStrategy defaultDataAccessStrategy(JdbcMappingContext context, DataSource dataSource, - SqlSession sqlSession) { - - NamedParameterJdbcOperations operations = new NamedParameterJdbcTemplate(dataSource); - - DelegatingDataAccessStrategy delegatingDataAccessStrategy = new DelegatingDataAccessStrategy(); - MyBatisDataAccessStrategy myBatisDataAccessStrategy = new MyBatisDataAccessStrategy(sqlSession); - - CascadingDataAccessStrategy cascadingDataAccessStrategy = new CascadingDataAccessStrategy( - asList(myBatisDataAccessStrategy, delegatingDataAccessStrategy)); - - DefaultDataAccessStrategy defaultDataAccessStrategy = new DefaultDataAccessStrategy( // - new SqlGeneratorSource(context), // - operations, // - context, // - cascadingDataAccessStrategy); - - delegatingDataAccessStrategy.setDelegate(defaultDataAccessStrategy); - - return cascadingDataAccessStrategy; + DataAccessStrategy defaultDataAccessStrategy(JdbcMappingContext context, SqlSession sqlSession) { + return MyBatisDataAccessStrategy.createCombinedAccessStrategy(context, sqlSession); } }