DataSource
Spring
Section titled “Spring”Use this integration when Spring already manages transactions through its DataSource.
DataSourceUtils.getConnection yields the connection bound to the current transaction.
Wrap it in a JdbcConnectionProvider and register it as a Spring bean:
public class DatasourceConnectionProvider implements JdbcConnectionProvider { private final DataSource dataSource;
public DatasourceConnectionProvider(DataSource dataSource) { this.dataSource = requireNonNull(dataSource); }
@Override public Connection getConnection() { return DataSourceUtils.getConnection(this.dataSource); }}Inject the provider into your generated classes through the Spring configuration:
@BeanPlatformTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource);}
@BeanJdbcConnectionProvider datasourceConnectionProvider(DataSource dataSource) { return new DatasourceConnectionProvider(dataSource);}
@BeanNamesService namesServiceKaumei(JdbcConnectionProvider provider) { return new NamesServiceKaumeiJdbc(provider);}References
Section titled “References”Other frameworks
Section titled “Other frameworks”This approach has not yet been tested outside Spring.
Any framework with a managed DataSource should be able to expose a similar provider.