diff --git a/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/AbstractYdbJdbcConfiguration.java b/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/AbstractYdbJdbcConfiguration.java index b4ef749..0c86753 100644 --- a/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/AbstractYdbJdbcConfiguration.java +++ b/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/AbstractYdbJdbcConfiguration.java @@ -1,5 +1,7 @@ package tech.ydb.data.repository.config; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.data.jdbc.core.convert.DefaultJdbcTypeFactory; @@ -15,9 +17,16 @@ /** * @author Madiyar Nurgazin + * @author Mikhail Polivakha */ -@Configuration +@Configuration(proxyBeanMethods = true) public class AbstractYdbJdbcConfiguration extends AbstractJdbcConfiguration { + + @Bean + public YdbDialectProvider ydbDialectProvider() { + return new YdbDialectProvider(); + } + @Override public JdbcConverter jdbcConverter( JdbcMappingContext mappingContext, @@ -32,4 +41,11 @@ public JdbcConverter jdbcConverter( return new YdbMappingJdbcConverter(mappingContext, relationResolver, conversions, jdbcTypeFactory); } + + @Override + public Dialect jdbcDialect(NamedParameterJdbcOperations operations) { + return ydbDialectProvider() + .getDialect(operations.getJdbcOperations()) + .orElseThrow(() -> new IllegalStateException(String.format("Cannot determine a dialect for %s; Please provide a Dialect", operations))); + } } diff --git a/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/YdbDialectProvider.java b/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/YdbDialectProvider.java index 3d81f85..78c667c 100644 --- a/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/YdbDialectProvider.java +++ b/spring-data-jdbc-ydb/src/main/java/tech/ydb/data/repository/config/YdbDialectProvider.java @@ -16,6 +16,7 @@ * @author Madiyar Nurgazin */ public class YdbDialectProvider extends DialectResolver.DefaultDialectProvider { + @Override public Optional getDialect(JdbcOperations operations) { Optional ydbDialect = Optional.ofNullable( diff --git a/spring-data-jdbc-ydb/src/main/resources/META-INF/spring.factories b/spring-data-jdbc-ydb/src/main/resources/META-INF/spring.factories deleted file mode 100644 index a6b64cf..0000000 --- a/spring-data-jdbc-ydb/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1 +0,0 @@ -org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=tech.ydb.data.repository.config.YdbDialectProvider