diff --git a/doma-spring-boot-autoconfigure/src/main/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfiguration.java b/doma-spring-boot-autoconfigure/src/main/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfiguration.java index 74c0fdf1..f8b1411c 100644 --- a/doma-spring-boot-autoconfigure/src/main/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfiguration.java +++ b/doma-spring-boot-autoconfigure/src/main/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfiguration.java @@ -16,6 +16,7 @@ import org.seasar.doma.jdbc.SqlFileRepository; import org.seasar.doma.jdbc.criteria.Entityql; import org.seasar.doma.jdbc.criteria.NativeSql; +import org.seasar.doma.jdbc.criteria.QueryDsl; import org.seasar.doma.jdbc.dialect.Db2Dialect; import org.seasar.doma.jdbc.dialect.Dialect; import org.seasar.doma.jdbc.dialect.H2Dialect; @@ -146,7 +147,6 @@ public DomaConfigBuilder domaConfigBuilder() { return new DomaConfigBuilder(domaProperties); } - @SuppressWarnings("deprecation") @Bean @ConditionalOnMissingBean(Config.class) public DomaConfig config(DataSource dataSource, Dialect dialect, @@ -190,4 +190,15 @@ public NativeSql nativeSql(Config config) { return new NativeSql(config); } } + + @Configuration + @ConditionalOnClass({ QueryDsl.class }) + public static class QueryDslConfiguration { + + @Bean + @ConditionalOnMissingBean(QueryDsl.class) + public QueryDsl queryDsl(Config config) { + return new QueryDsl(config); + } + } } diff --git a/doma-spring-boot-autoconfigure/src/test/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfigurationTest.java b/doma-spring-boot-autoconfigure/src/test/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfigurationTest.java index 423ddfc3..85b8ecaa 100644 --- a/doma-spring-boot-autoconfigure/src/test/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfigurationTest.java +++ b/doma-spring-boot-autoconfigure/src/test/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfigurationTest.java @@ -1,8 +1,11 @@ package org.seasar.doma.boot.autoconfigure; -import static org.hamcrest.CoreMatchers.*; -import static org.hamcrest.MatcherAssert.*; -import static org.junit.jupiter.api.Assertions.*; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.sql.SQLException; import java.sql.SQLTimeoutException; @@ -27,6 +30,7 @@ import org.seasar.doma.jdbc.UtilLoggingJdbcLogger; import org.seasar.doma.jdbc.criteria.Entityql; import org.seasar.doma.jdbc.criteria.NativeSql; +import org.seasar.doma.jdbc.criteria.QueryDsl; import org.seasar.doma.jdbc.dialect.Dialect; import org.seasar.doma.jdbc.dialect.H2Dialect; import org.seasar.doma.jdbc.dialect.MysqlDialect; @@ -255,6 +259,24 @@ public void testJdbcLoggerSlf4J() { assertThat(jdbcLogger.getClass().getSimpleName(), is("Slf4jJdbcLogger")); } + @Test + public void testAutoRegisteredQueryDsl() { + this.context.register(DomaAutoConfiguration.class, DataSourceAutoConfiguration.class); + this.context.refresh(); + QueryDsl queryDsl = this.context.getBean(QueryDsl.class); + assertNotNull(queryDsl); + } + + @Test + public void testQueryDslWithConfig() { + this.context.register(MyQueryDslConfig.class, DomaAutoConfiguration.class, + DataSourceAutoConfiguration.class); + this.context.refresh(); + Map queryDslBeans = this.context.getBeansOfType(QueryDsl.class); + assertEquals(1, queryDslBeans.size()); + assertNotNull(queryDslBeans.get("myQueryDsl")); + } + @After public void tearDown() { if (this.context != null) { @@ -341,4 +363,13 @@ public NativeSql myNativeSql(Config config) { return new NativeSql(config); } } + + @Configuration + public static class MyQueryDslConfig { + + @Bean + public QueryDsl myQueryDsl(Config config) { + return new QueryDsl(config); + } + } }