he encontrado la siguiente hilo: How exactly JdbcTemplate with TransactionManager works together?¿El administrador de transacciones de Spring vincula una conexión a un hilo?
La primera frase de que:
Por lo que comprendía DataSourceTransactionManager une una conexión JDBC desde el origen de datos especificado para el subproceso actual, lo que permite un hilo-bound Conexión por DataSource. Si se trata de un conjunto de conexiones, tomará una de las conexiones disponibles.
... es exactamente lo que quiero saber.
Al usar un administrador de transacciones, ¿termina con cada hilo que tiene su propia conexión? Además, ¿cuánto tiempo vive esa conexión? ¿El mismo hilo usa la misma conexión a lo largo de una sola solicitud, o hay algo más que está pasando? Solo trato de entender qué hace exactamente Spring cuando tienes un administrador de transacciones y cuándo no (independientemente de si tienes una transacción o no).
Gracias por su respuesta. Me ayuda a entender un poco más de lo que está pasando. Entiendo cómo la gestión de transacciones permite que la transacción se extienda para operaciones múltiples. Sin embargo, en mi caso, tengo @Transactional (propagation = Propagation.SUPPORTS) en cada uno de mis métodos DAO, lo que significa que cada llamada usará su propia transacción independiente. Después de que el administrador obtiene una conexión inicial del grupo, ¿enlaza esa conexión con el hilo actual y luego la recupera desde allí durante la vida del hilo, en lugar de volver al grupo para obtener una conexión? – dnc253
"cada llamada usará su propia transacción independiente" - esto no es cierto. Su DAO "heredará" cualquier transacción existente que ya esté vinculada al hilo. no comenzará una nueva a menos que ya no haya ninguna. – skaffman
Supongo que la forma en que estoy definiendo "transacción" no es totalmente correcta.La forma en que he entendido una transacción es cuando tienes una única operación de base de datos (que podría tener cualquier cantidad de actualizaciones, inserciones, etc.). Todo sucede o nada sucede. La forma en que se configura el DAO, cada método operará en el DB independientemente de los otros métodos. Si un método falla, no afectará las operaciones realizadas por otros métodos antes o después de la falla. Entonces, ¿qué es exactamente una "transacción"? Estaba pensando que cada método crearía su propia transacción, pero aparentemente ese no es el caso. – dnc253