Je dois annuler la première instruction si une erreur survient lors de l'exécution de la deuxième instruction de mise à jour dans une base de données différente. Je ne veux pas utiliser EntityManager car JdbcTemplate est déjà utilisé dans tous les autres codes. Si j'utilise @Transactional avec le qualificateur, cela fonctionne parfaitement, mais je veux que @Transactional fonctionne pour les deux bases de données.Comment puis-je utiliser une transaction unique avec plusieurs sources de données avec jdbcTemplate au démarrage de printemps?
Mon extrait de code est le suivant:
**DatasourceConfig.xml**
//Datasource for **DB2** database
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfigLmsDataSource" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
scope="singleton" primary="true">
<property name="dataSource" ref="dataSource" />
</bean>
//Datasource for **Mysql** Database database
<bean id="dataSource1" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfigLmsDataSource1" />
</bean>
<bean id="jdbcTemplate1" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource1"/>
</bean>
<bean id="transactionManager1"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
scope="singleton" primary="true">
<property name="dataSource" ref="dataSource1" />
</bean>
//Inside service class
**MyService.java**
@Autowired("jdbcTemplate")
JdbcTemplate jdbcTemplate;
@Autowired("jdbcTemplate1")
JdbcTemplate jdbcTemplate1;
@Transactional
public void modifyDB()
{
jdbcTemplate.update("Update query for table in DB2 database");
jdbcTemplate1.update("Update query for table in MySql database");
}
Ce poste n'explique comment puis-je configurer plusieurs de source de données et multiples de JdbcTemplate correctement. Si vous avez un autre lien avec un exemple complet, cela m'aidera beaucoup. Merci.. –