le printemps plusieurs gestionnaire de transactions problème
J'ai deux gestionnaire de transactions définies dans deux printemps de fichier xml, et deux d'entre eux chargés du printemps contexte
D'Un Fichier D'
<tx:annotation-driven transaction-manager="transactionManager1"/>
<bean id="transactionManager1"
class="org.springframework.jdbc.DataSourceTransactionManager">
...
</bean>
Fichier Deux
<tx:annotation-driven transaction-manager="transactionManager2"/>
<bean id="transactionManager2"
class="org.springframework.jdbc.DataSourceTransactionManager">
...
</bean>
Si je n'ai pas d'indiquer tout qualificatif pour le dessous de service, le gestionnaire de transactions de printemps vont utiliser.
public class TransactionalService {
@Transactional
public void setSomething(String name) { ... }
@Transactional
public void doSomething() { ... }
}
Vous devez vous connecter pour publier un commentaire.
Découvrez 11.5.6 à l'Aide de @Transactional à partir de la documentation officielle:
Aucun des vôtres gestionnaires de transactions sont nommés
transactionManager
, vous devez spécifier le gestionnaire de transactions devrait être utilisé pour les méthodes marqué avec@Transactional
.Mise à JOUR: pour répondre à votre question modifiée. Vous pouvez spécifier le gestionnaire de transactions à utiliser sur
@Transactional
annotation (voir:@Transactionnelle.valeur()
):Cependant je vois plusieurs problèmes avec votre configuration actuelle:
vous définissez
<tx:annotation-driven/>
deux fois avec différents responsables de la transaction. Je ne pense pas qu'une telle configuration est validesans fournir de gestionnaire de transactions explicitement, lequel doit être utilisé?
La solution, je pense, devrait travail est de définir
<tx:annotation-driven transaction-manager="transactionManager1"/>
une fois et utilisez@Transactional
utiliser en premier gestionnaire et@Transactional("transactionManager2")
d'utiliser la seconde. Ou l'autre manière autour.<tx:annotation-driven transaction-manager="yourTxMgrName"/>
pour plusieurs gestionnaires de transactions, d'autre Printemps ne peut pas voir mon responsables de la transaction.