Показать всех детей, которым предоставлен родительский узел с Hibernate - PullRequest
0 голосов
/ 04 августа 2011

Кажется, эта проблема довольно популярна в программировании.

У меня есть таблица, среди полей которой есть Id и ParentId.

Вопрос в том, как при использовании Hibernate правильно обрабатыватьзадача типа «извлечь всех дочерних элементов данного узла»

Прямо сейчас я получил что-то вроде рекурсивного цикла, который находит дочерние элементы с заданным parentId, но при 10000 строках в таблице это просто безумие.* Все, что я могу найти, это то, что люди говорят, что эта структура БД не подходит для больших объемов данных, но я уже на этом пути.Что я могу сделать, кроме как убить мою БД с помощью 10000 маленьких запросов?

1 Ответ

0 голосов
/ 04 августа 2011

Когда у объекта гибернации есть свойство «один ко многим», каждый вызов для получения следующего дочернего элемента вызывает запрос.Это называется «отложенной загрузкой» и повышает производительность, захватывая их по требованию.Вы можете заставить hibernate «охотно загружать» набор all в одном запросе, установив свойство lazy в вашем отображении.Более подробная информация доступна в документации: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-fetching-lazyproperties

...