Skip to content

Datasource

This integration works only if you use the DatasourceConnectionProvider for TX management.

With the tool DataSourceUtils.getConnection we can get the current connection for the current transaction.

First we create a implementation of JdbcConnectionProvider and add it to the Spring config.

DatasourceConnectionProvider.java
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);
}
}

Later we can use it in the dependency injection to be injected in our generated classes. Please find below the common code.

SpringDatasourceConfig.java
@Bean
PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
JdbcConnectionProvider datasourceConnectionProvider(DataSource dataSource) {
return new DatasourceConnectionProvider(dataSource);
}
@Bean
NamesService namesServiceKaumei(JdbcConnectionProvider provider) {
return new NamesServiceKaumeiJdbc(provider);
}

Not yet tested. Expected to behave similarly to Spring.