При использовании диспетчера транзакций у вас в конечном итоге каждый поток имеет свое собственное отдельное соединение? Кроме того, как долго это соединение живет?
Соединение обычно получается из пула соединений. Соединение заимствуется из пула, когда менеджер транзакций запускает транзакцию, а затем возвращается в пул, когда транзакция завершается. В течение этого времени соединение связано с потоком.
Использует ли один и тот же поток одно и то же соединение в течение одного запроса
Используется одно и то же соединение на время транзакции. Сам запрос не имеет значения.
независимо от того, действительно ли у вас есть транзакция
У вас всегда есть транзакция, независимо от того, делаете вы это явно или нет. Если вы не настроите один явно, то драйвер JDBC и база данных будут запускать и завершать один столько времени, сколько потребуется для выполнения одной операции. Управление транзакциями Spring (или управление транзакциями любой другой платформы) позволяет вам продлить срок действия этой транзакции на несколько операций. Для этого требуется исключительное использование соединения на время транзакции.