I can't understand how can Hibernate delay the connection aquisition if Spring decides to aquire it before.
Решение принимается менеджером транзакций и поэтому потенциально JpaTransactionManager/HibernateTransactionManager
Hibernate 5.2.0 вводит новое свойство hibernate.connection.provider_disables_autocommit
С помощью этого Hibernate может задерживать получение соединения с базой данных до тех пор, пока не будет выполнен оператор JDB C. в противном случае соединение с базой данных получается при входе в метод сервиса @Transactional.
Таким образом, чтобы разрешить Spring связывать это свойство с JPATransactionManager во время настройки контекста Spring, вы должны установить это свойство в вашем application.properties/yaml - -> spring.jpa.properties.hibernate.connection.provider_disables_autocommit
Последнее, что необходимо сделать для этого -> установить значение false для провайдера пула соединений (по умолчанию HikariCP с момента загрузки Spring 2) spring.datasource.hikari.auto-commit=false