tgoop.com/javaproglib/6409
Create:
Last Update:
Last Update:
При использовании @Transactional Spring Data JPA по умолчанию отслеживает изменения загруженных сущностей для последующей фиксации. Но если вам нужно только чтение, добавьте:
@Transactional(readOnly = true)
Spring Data JPA переводит транзакцию в режим без грязных проверок (no dirty checking), что ускоряет выполнение, так как не отслеживает изменения в загруженных сущностях.
Также БД может оптимизировать запросы, зная, что изменений не будет, особенно СУБД с поддержкой уровня изоляции READ ONLY.
В обычной транзакции Spring Data JPA сохраняет копию каждой загруженной сущности, чтобы сравнить её состояние при коммите и зафиксировать изменения. С readOnly=true эта дорогостоящая операция пропускается, что снижает нагрузку на память и CPU.
— Сервисы, где нет операций save/update/delete.
— REST-эндпоинты, отдающие справочные данные.
— Запросы к отчетам и аналитике.