1. Обзор
Спецификация JPA предоставляет две разные стратегии выборки: нетерпеливую и ленивую. Хотя ленивый подход помогает избежать ненужной загрузки данных, которые нам не нужны, иногда нам нужно прочитать данные, изначально не загруженные в закрытом Persistence Context . Более того, доступ к коллекциям ленивых элементов в закрытом контексте сохранения является распространенной проблемой.
В этом руководстве мы сосредоточимся на том, как загружать данные из коллекций отложенных элементов. Мы рассмотрим три различных решения: одно с использованием языка запросов JPA, другое с использованием графов сущностей и последнее с распространением транзакций.
2. Проблема сбора элементов
По умолчанию JPA использует стратегию отложенной выборки в ассоциациях типа @ElementCollection
. Таким образом, любой доступ к коллекции в закрытом Persistence Context приведет к исключению.