powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, нестандартная ситуация!?
18 сообщений из 18, страница 1 из 1
Hibernate, нестандартная ситуация!?
    #34907981
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Происходит построение дерева.

Отношение родитель/потомок у таблицы саму на себя, то есть потомок может быть одновременно родителем.
Сначала вытаскиваем всё в list. И по идее этого запроса должно хватить хиберу.
Так нет ведь при рекурсивном выводе элементов дерева, он опять тянет детей (дополнительные и ненужные запросы(!
Подскажите, пожалуйста, как это сделать одним запросом, без повторных обращений к базе?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
< class  name="Org" table="Org" polymorphism="implicit">
    <id name="id" column="id" />
    <property name="name" column="name"/>
      
    <many-to-one  column="owner"  class ="Org" name="parentHi"/>
   
     <set                          
                 name="childHi" 
                 inverse="true"
                 lazy="true"
                 fetch="join">
                <key column="owner"/>
                <one-to-many  class ="Org" />
        </set>
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34908247
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробавать кэш, получаем(если у вас таки лес, а не просто дерево) руты (запросом где парент NULL) и погнали... Согласно доке при навигации по графу объектов хибер пробует их тянуть сначала из кеша, так что запросы в БД пойдут только за отсутствующими сущностями.
Удачи.
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34908301
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет!
Правда буду делать это впервые...
Буду пробовать!
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34908318
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте "from Org" потом обойдите всё дерево вызывая к0ннить методы. и уже эту ... отдавайте клиенту
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909152
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чего то не совсем понятно...

Из базы у меня тащится всё в list с помощью .createCriteria!

А потом, работая с этим list, проверяя наличие детей, и происходят дополнительные обращения к базе.

Можно поподробнее, пожалуйста, насчёт "from Org"?
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909268
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это запрос выбирает всю таблицу. поэтому при дальнейших обращениях к проксям хибер не будет дёргать базу.
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909307
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А чем отличается от этого

Код: plaintext
list =  this .getSession().createCriteria(cls)

По идее тоже вся таблица тянется, или я ошибаюсь?
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909531
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю да
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909630
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ясно. Спасибо!
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909723
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на самом деле не за что, т.к. фетчить всю таблицу явный моветон
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909794
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему?
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909822
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну много данных обычно. хотя если объёмы позволяют, то на здоровье
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34909882
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы имеете в виду постепенную подгрузку по необходимости конкретной ветки дерева?
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34910232
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabberВы имеете в виду постепенную подгрузку по необходимости конкретной ветки дерева?+1
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34910297
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я про подгрузку ветки дерева по нажатию на неё!
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34910564
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
"from Org chilren where children.parentHi=:parent"
про-fetch-ите только одну ветку. результат запроса вам не нужен! просто теперь вся ветка вашего parent будет загружена
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34910680
jabber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Сейчас попробую...
...
Рейтинг: 0 / 0
Hibernate, нестандартная ситуация!?
    #34910847
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expp...теперь вся ветка вашего parent будет загружена но не инициализированы
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, нестандартная ситуация!?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]