Skip to content

Commit 6bb1820

Browse files
authored
Merge pull request #50 from domaframework/criteria-api
Add configuration for Criteria API
2 parents 59ace11 + 95e6101 commit 6bb1820

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

doma-spring-boot-autoconfigure/src/main/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfiguration.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import org.seasar.doma.jdbc.EntityListenerProvider;
2525
import org.seasar.doma.jdbc.Naming;
2626
import org.seasar.doma.jdbc.SqlFileRepository;
27+
import org.seasar.doma.jdbc.criteria.Entityql;
28+
import org.seasar.doma.jdbc.criteria.NativeSql;
2729
import org.seasar.doma.jdbc.dialect.Dialect;
2830
import org.springframework.beans.factory.annotation.Autowired;
2931
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
@@ -126,4 +128,20 @@ public DomaConfig config(DataSource dataSource, Dialect dialect,
126128
return domaConfigBuilder.build();
127129
}
128130

131+
@Configuration
132+
@ConditionalOnClass({ Entityql.class, NativeSql.class })
133+
public static class CriteriaConfiguration {
134+
135+
@Bean
136+
@ConditionalOnMissingBean(Entityql.class)
137+
public Entityql entityql(Config config) {
138+
return new Entityql(config);
139+
}
140+
141+
@Bean
142+
@ConditionalOnMissingBean(NativeSql.class)
143+
public NativeSql nativeSql(Config config) {
144+
return new NativeSql(config);
145+
}
146+
}
129147
}

doma-spring-boot-autoconfigure/src/test/java/org/seasar/doma/boot/autoconfigure/DomaAutoConfigurationTest.java

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@
1616
package org.seasar.doma.boot.autoconfigure;
1717

1818
import static org.hamcrest.CoreMatchers.*;
19-
import static org.junit.Assert.assertThat;
19+
import static org.junit.Assert.*;
2020

2121
import java.sql.SQLException;
2222
import java.sql.SQLTimeoutException;
2323
import java.util.Collections;
24+
import java.util.Map;
2425

2526
import javax.sql.DataSource;
2627

@@ -29,6 +30,8 @@
2930
import org.junit.Test;
3031
import org.seasar.doma.boot.DomaPersistenceExceptionTranslator;
3132
import org.seasar.doma.jdbc.*;
33+
import org.seasar.doma.jdbc.criteria.Entityql;
34+
import org.seasar.doma.jdbc.criteria.NativeSql;
3235
import org.seasar.doma.jdbc.dialect.Dialect;
3336
import org.seasar.doma.jdbc.dialect.MysqlDialect;
3437
import org.seasar.doma.jdbc.dialect.PostgresDialect;
@@ -194,6 +197,29 @@ public void testSQLExceptionTranslator() {
194197
}
195198
}
196199

200+
@Test
201+
public void testAutoRegisteredCriteriaAPI() {
202+
this.context.register(DomaAutoConfiguration.class, DataSourceAutoConfiguration.class);
203+
this.context.refresh();
204+
Entityql entityql = this.context.getBean(Entityql.class);
205+
assertNotNull(entityql);
206+
NativeSql nativeSql = this.context.getBean(NativeSql.class);
207+
assertNotNull(nativeSql);
208+
}
209+
210+
@Test
211+
public void testCriteriaAPIWithConfig() {
212+
this.context.register(MyCriteriaAPIConfig.class, DomaAutoConfiguration.class,
213+
DataSourceAutoConfiguration.class);
214+
this.context.refresh();
215+
Map<String, Entityql> entityqlBeans = this.context.getBeansOfType(Entityql.class);
216+
assertEquals(1, entityqlBeans.size());
217+
assertNotNull(entityqlBeans.get("myEntityql"));
218+
Map<String, NativeSql> nativeSqlBeans = this.context.getBeansOfType(NativeSql.class);
219+
assertEquals(1, nativeSqlBeans.size());
220+
assertNotNull(nativeSqlBeans.get("myNativeSql"));
221+
}
222+
197223
@After
198224
public void tearDown() {
199225
if (this.context != null) {
@@ -260,4 +286,18 @@ public static void addEnvironment(ConfigurableApplicationContext context,
260286
value)));
261287
}
262288
}
289+
290+
@Configuration
291+
public static class MyCriteriaAPIConfig {
292+
293+
@Bean
294+
public Entityql myEntityql(Config config) {
295+
return new Entityql(config);
296+
}
297+
298+
@Bean
299+
public NativeSql myNativeSql(Config config) {
300+
return new NativeSql(config);
301+
}
302+
}
263303
}

0 commit comments

Comments
 (0)