Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare la stessa connessione per due query in primavera?

Assicurati che il tuo DAO sia incluso in una transazione (ad esempio utilizzando Spring's Interceptor for Transactions). La stessa connessione verrà quindi utilizzata per entrambe le chiamate.

Ancora meglio sarebbe avere le transazioni di un livello più alto, a livello di servizio.

Documentazione:http://static .springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html

Aggiornamento: Se dai un'occhiata al JavaDoc di DataSourceUtils.getConnection() metodo a cui hai fatto riferimento nel tuo aggiornamento, vedrai che ottiene la connessione associata al thread corrente:

In base a questo, dovrebbe funzionare come l'hai impostato. Ho usato questo modello molte volte e non ho mai riscontrato problemi come hai descritto tu...

Dai anche un'occhiata a questo thread, qualcuno ha avuto a che fare con problemi simili lì:Transazioni dichiarative Spring Jdbc create ma non eseguite