Что такое Open Session in View (OSIV) и почему его отключают?

Middle
224 просмотров
AFK Offer AI

OSIV (spring.jpa.open-in-view=true по умолчанию) держит persistence context открытым на всё время HTTP запроса, включая рендеринг view. Преимущество: можно обращаться к lazy коллекциям в view без транзакции. Проблема: Connection из пула занята на всё время запроса (включая медленный рендеринг/сериализацию), скрывает N+1 проблемы. В продакшене рекомендуется отключить (=false) и явно загружать всё нужное в сервисном слое через fetch join или projection.

Следующий вопрос

Как работают Health Indicators в Spring Boot Actuator?