Asegúrese de que su DAO esté envuelto en una transacción (por ejemplo, mediante el uso de Spring's Interceptors for Transactions). Entonces se utilizará la misma conexión para ambas llamadas.
Aún mejor sería tener las transacciones un nivel más alto, en la capa de servicio.
Documentación:http://static .springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html
Actualización: Si echa un vistazo al JavaDoc de DataSourceUtils.getConnection()
método al que hizo referencia en su actualización, verá que obtiene la conexión asociada con el hilo actual:
De acuerdo con esto, debería funcionar como lo ha configurado. He usado este patrón muchas veces y nunca me encontré con ningún problema como el que describiste...
También eche un vistazo a este hilo, alguien estaba lidiando con problemas similares allí:Transacciones declarativas de Spring Jdbc creadas pero sin hacer nada