В нашем проекте Spring Boot 3 мы хотим использовать следующее свойство, чтобы ограничить время выполнения SQL-запроса до 2 минут:
spring.jpa.properties.jakarta.persistence.query.timeout=120000
Мы также используем Liquibase для миграции данных во время запуска сервиса. Поскольку мы не хотим, чтобы этот тайм-аут использовался для сценариев запуска Liquibase: учитывает ли Liquibase это свойство или игнорирует его?
Сама Liquibase не учитывает свойства Spring. Более того, это свойство JPA, настраивающее соединение между Spring и базой данных. Ликвибазы нет в уравнении.
Чтобы настроить таймаут запроса, вы должны выполнить настройку соединения Liquibase: Вы можете определить конфигурацию в соединении JDBC, например, в liquibase.properties:
url=jdbc:postgresql://localhost:5432/db?socketTimeout=120
Обратите внимание, что конфигурация зависит от конкретной БД. Я предполагаю, что Oracle или MySQL будут использовать другую конфигурацию таймаутов. Выше приведена конфигурация для PostgreSQL.
Наконец, вы можете проверить это, используя длительный запрос, например. используя pg_sleep в PostgreSQL (подробнее читайте в этом ответе).