Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar a mesma conexão para duas consultas no Spring?


Certifique-se de que seu DAO esteja envolvido em uma transação (por exemplo, usando Interceptors for Transactions do Spring). A mesma conexão será então usada para ambas as chamadas.

Melhor ainda seria ter as transações um nível mais alto, na camada de serviço.

Documentação:http://static .springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html

Atualização: Se você der uma olhada no JavaDoc do DataSourceUtils.getConnection() método que você referenciou em sua atualização, você verá que ele obtém a conexão associada ao thread atual:

De acordo com isso, ele deve funcionar como você o configurou. Eu usei esse padrão muitas vezes e nunca tive problemas como você descreveu ...

Por favor, dê uma olhada neste tópico, alguém estava lidando com problemas semelhantes lá:Transações declarativas Spring Jdbc criadas, mas não fazendo nada