Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, нестандартная ситуация!? / 18 сообщений из 18, страница 1 из 1
31.10.2007, 15:31:34
    #34907981
jabber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate, нестандартная ситуация!?
Происходит построение дерева.

Отношение родитель/потомок у таблицы саму на себя, то есть потомок может быть одновременно родителем.
Сначала вытаскиваем всё в 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
31.10.2007, 16:41:36
    #34908247
zalexaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate, нестандартная ситуация!?
Попробавать кэш, получаем(если у вас таки лес, а не просто дерево) руты (запросом где парент NULL) и погнали... Согласно доке при навигации по графу объектов хибер пробует их тянуть сначала из кеша, так что запросы в БД пойдут только за отсутствующими сущностями.
Удачи.
...
Рейтинг: 0 / 0
31.10.2007, 16:55:08
    #34908301
jabber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate, нестандартная ситуация!?
Спасибо за совет!
Правда буду делать это впервые...
Буду пробовать!
...
Рейтинг: 0 / 0
31.10.2007, 17:00:29
    #34908318
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate, нестандартная ситуация!?
сделайте "from Org" потом обойдите всё дерево вызывая к0ннить методы. и уже эту ... отдавайте клиенту
...
Рейтинг: 0 / 0
01.11.2007, 08:32:30
    #34909152
jabber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate, нестандартная ситуация!?
чего то не совсем понятно...

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

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

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

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

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


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