From dbae4fc1c35b6d3aecc2b0bd3b35b614be271d87 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 14 Dec 2017 09:33:10 +0100 Subject: [PATCH 1/2] Make it easier to use jOOQ with several data sources Closes gh-11324 --- .../autoconfigure/jooq/JooqExceptionTranslator.java | 3 ++- .../jooq/SpringTransactionProvider.java | 5 +++-- spring-boot-docs/src/main/asciidoc/howto.adoc | 13 +++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqExceptionTranslator.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqExceptionTranslator.java index 93be2b591b..e6cf90b4de 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqExceptionTranslator.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/JooqExceptionTranslator.java @@ -37,8 +37,9 @@ import org.springframework.jdbc.support.SQLStateSQLExceptionTranslator; * @author Andreas Ahlenstorf * @author Phillip Webb * @author Stephane Nicoll + * @author 1.5.10 */ -class JooqExceptionTranslator extends DefaultExecuteListener { +public class JooqExceptionTranslator extends DefaultExecuteListener { // Based on the jOOQ-spring-example from https://github.com/jOOQ/jOOQ diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SpringTransactionProvider.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SpringTransactionProvider.java index 52d4cd8deb..75feb02f1f 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SpringTransactionProvider.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SpringTransactionProvider.java @@ -30,14 +30,15 @@ import org.springframework.transaction.support.DefaultTransactionDefinition; * @author Lukas Eder * @author Andreas Ahlenstorf * @author Phillip Webb + * @since 1.5.10 */ -class SpringTransactionProvider implements TransactionProvider { +public class SpringTransactionProvider implements TransactionProvider { // Based on the jOOQ-spring-example from https://github.com/jOOQ/jOOQ private final PlatformTransactionManager transactionManager; - SpringTransactionProvider(PlatformTransactionManager transactionManager) { + public SpringTransactionProvider(PlatformTransactionManager transactionManager) { this.transactionManager = transactionManager; } diff --git a/spring-boot-docs/src/main/asciidoc/howto.adoc b/spring-boot-docs/src/main/asciidoc/howto.adoc index 9f7d7e48a6..e9e43a96fd 100644 --- a/spring-boot-docs/src/main/asciidoc/howto.adoc +++ b/spring-boot-docs/src/main/asciidoc/howto.adoc @@ -2095,6 +2095,19 @@ include::{code-examples}/elasticsearch/HibernateSearchElasticsearchExample.java[ +[[howto-configure-a-component-that-is-used-by-JPA]] +=== Configure jOOQ with Two DataSources +If you need to use jOOQ with multiple data sources, you should create your own +`DSLContext` for each, refer to +{sc-spring-boot-autoconfigure}/jooq/JooqAutoConfiguration.{sc-ext}[JooqAutoConfiguration] +for more details. + +TIP: In particular, `JooqExceptionTranslator` and `SpringTransactionProvider` can be +reused to provide similar features to what the auto-configuration does with a single +`DataSource`. + + + [[howto-database-initialization]] == Database initialization An SQL database can be initialized in different ways depending on what your stack is. Or From 61ca4ab562bef95a18d0537b88c676a6958d33b3 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 14 Dec 2017 09:33:34 +0100 Subject: [PATCH 2/2] Polish --- .../src/main/asciidoc/appendix-application-properties.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index 4439c17540..f318704ed6 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -666,7 +666,7 @@ content into your application; rather pick only the properties that you need. spring.h2.console.settings.trace=false # Enable trace output. spring.h2.console.settings.web-allow-others=false # Enable remote access. - # JOOQ ({sc-spring-boot-autoconfigure}/jooq/JooqAutoConfiguration.{sc-ext}[JooqAutoConfiguration]) + # JOOQ ({sc-spring-boot-autoconfigure}/jooq/JooqProperties.{sc-ext}[JooqProperties]) spring.jooq.sql-dialect= # SQLDialect JOOQ used when communicating with the configured datasource. For instance `POSTGRES` # JPA ({sc-spring-boot-autoconfigure}/orm/jpa/JpaBaseConfiguration.{sc-ext}[JpaBaseConfiguration], {sc-spring-boot-autoconfigure}/orm/jpa/HibernateJpaAutoConfiguration.{sc-ext}[HibernateJpaAutoConfiguration])