У Vlad Mihalcea есть полезный приём: логировать не только сам SQL-запрос, но и stack trace места, где Hibernate его создал.
Для этого используется
QueryStackTraceLogger из Hypersistence Utils.Сценарий понятный:
* DBA нашёл медленный запрос
* в логах видно SQL
* рядом видно Java-цепочку вызовов
* по stack trace можно выйти на repository, service или controller
Это особенно полезно для расследования N+1, слишком частых запросов и тяжёлых SQL, которые внезапно появляются в проде.
В Spring Boot это подключается через
STATEMENT_INSPECTOR, а затем включается DEBUG-логирование для Hypersistence Utils.Итог: ты видишь не просто “какой SQL тормозит”, а кто именно в коде его породил.
https://vladmihalcea.com/source-sql-query-hibernate/
