У меня есть в моем сопоставлении ассоциация с загруженной коллекцией (lazy = "false" fetch = "subselect"). Как я могу отключить это программно с помощью Hibernate, когда я сделаю запрос?Как вы программно отключите нетерпеливое извлечение спящего режима?
ответ
Фактически, это должно быть наоборот. Вы отключите его в отображении и активируете его в определенных случаях использования с помощью «выборки» в запросе.
Именно так видит команда Hibernate. В Hibernate нет способа создать запрос, который указывает «no-fetch» для свойства ...
У меня была ситуация, которая по историческим причинам вызывала выборку между несколькими зависимостями один-на-один. В течение многих лет многие места зависели от этого, поэтому было трудно отключить. Однако для некоторых случаев нетерпевая выборка мешала: для каждого большего выбора в таблице она создавала бы 100 с небольших подзапросов для каждой из коллекций каждого из объектов. Я нашел способ обойти это, не переусердствуя с нетерпением, но для меня так же полезно: просто создайте один запрос, который выполняет все подэмплы сразу. Это сделает 1 физический запрос к базе данных, вместо того, чтобы спящий режим прошел график зависимостей и породил 100 запросов.
Так я заменил
Query q = session.createQuery("from Customer c");
по
Query q = session.createQuery("from Customer c " +
"left join fetch c.vats v " +
"left join fetch v.klMemos bk " +
"left join fetch bk.ferryKlMemos");
1 Заказчик имеет много номеров НДС, номер 1 НДС имеет много klmemos и так далее. Старая ситуация сначала забирала только клиентов, а спящий режим затем начинал собирать каждую зависимую коллекцию один за другим. Вторая форма загрузит все в один собственный запрос, а hibernate найдет все необходимое для заполнения желаемых коллекций в кеше объектов. Надеюсь, это поможет кому-то. Примечание: Я все еще думаю, что вы должны стараться избегать нетерпеливых изъятий ;-)
- 1. Извлечение объекта из спящего режима
- 2. Изменение размера партии спящего режима программно
- 3. Начальный номер спящего спящего режима
- 4. Пример режима спящего режима LPC
- 5. Обновление спящего режима с 2.1.8 до спящего режима 3.6.10
- 6. Операция спящего режима
- 7. Как вы программно удалите (не отключите) кнопку от TinyMCE?
- 8. Как вы отключите ListView и прокрутите для ListView программно
- 9. Устранение тонкостей спящего режима
- 10. SFML - расчет спящего режима
- 11. Миграция спящего режима: BeanlibException
- 12. Странный кэш-память спящего режима
- 13. Как указать сопоставления спящего режима?
- 14. Как отключить кэширование спящего режима
- 15. Как работает псевдоним спящего режима
- 16. Как работает кэширование спящего режима
- 17. Как записывать параметры спящего режима
- 18. Как отключить объект спящего режима
- 19. Как настроить файл спящего режима?
- 20. dijit.Tooltip --- как вы отключите наведение?
- 21. Наследование спящего режима с критериями спящего режима (TABLE_PER_CLASS)
- 22. инициализация после спящего режима
- 23. Конфигурация спящего режима SwarmCache
- 24. понимание кэша спящего режима
- 25. Ошибка динамического спящего режима
- 26. Обнаружение спящего режима
- 27. Стратегия сгенерированного спящего режима
- 28. Индекс силы спящего режима
- 29. Прогноз проекции спящего режима
- 30. высокопроизводительная вставка спящего режима
Вот что я и подумал. Я просто пытался удачи, если есть такой способ сделать это. Спасибо –
Вы очень желанны. Есть ли еще что-то, что вам нужно, чтобы ответить на ваш вопрос в ответ? Я хочу принять ответ. – KLE