2015-10-05 3 views
0

Я не уверен, как описать мою проблему здесь ...Как программно определить, а ленивая коллекция должна быть загружена?

У меня есть аннотированный объект JPA, который управляется спящим. Я использую reposs с помощью querydsl для управления некоторой загрузкой.

У нас есть определенные поля наших объектов, которые мы хотим получить в определенных ситуациях, но не в других ситуациях. В основном, реквестер наших данных о отдыхе может использовать аргумент $ expand, чтобы скорее решить расширить необработанные данные с помощью дополнительных коллекций.

Моя проблема заключается в том, что простой ленивый загрузчик кажется недостаточным для предотвращения загрузки этих расширяемых полей объекта, если пользователь не попросил их расширить. Некоторые из нашей логики автоматически проходят через весь наш getter и обрабатывают их, и поэтому это всегда будет приводить к загрузке ленивых загруженных полей.

Мне интересно, есть ли способ программно включить поля «on» или «off», которые я не хочу ленивой загрузки из бэкэнд, не отсоединяя весь объект?

+0

вот что такое EntityGraph, пробовал? –

ответ

0

Может быть, это предложение не соответствует в точности то, что вы ожидаете, но вы можете установить эту опцию (с Hibernate):

@ org.hibernate.annotations.LazyCollectionOption.EXTRA

С помощью этой опции, все будет установлено, чтобы избежать загрузки коллекции. Он обеспечивает доступ к размеру коллекции без загрузки элементов в коллекции.

Смежные вопросы