Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> hibernate lookup entity 
:(
    Опции темы
MerlinDeep
Дата 2.1.2011, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Доброго времени суток!
Поздравляю всех с наступившим новым годом!

Вожусь с проектом с использованием hibernate и возникла такая ситуация:
1. есть сущьность entity1 с очень большим множеством полей 
2. есть сущьности которые используют сущьность entity1, но что бы не тянуть все поля а только необходимые для просмотра создана сущьность entity1LookUp - которая содержит только необходимые для lookUp поля.
3. возникла потребность фильтровать данные в entity1LookUp по полям которые эта сущьность не содержит, но поля эти есть в базовой сущьности и есть в таблице

Подскажите как быть в этой ситуации? Может есть более правльная органзация процесса?

Просьба не предлагать решения типа: а ты добавь поля по которым надо сделать фильтр, и так понятно что это наипростейщий вариант, но он увеличит трафик, а этого не нужно делать.

Очень жду ваших советов.

Еще раз всех с Новым Годом!
PM   Вверх
jk1
Дата 3.1.2011, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 5
Всего: 75



Почему бы не воспользоваться ленивой инициализацией для полей? Тогда подтягиваться будут только требуемые поля и ничего больше, и новая сущность будет не нужна.

Если Вы не задавали этот факт явным образом, то Ваши поля по умолчанию загружаются "лениво", то есть по требованию. Общий default для полей сущностей и коллекций можно настроить так

Код

<hibernate-mapping
         ...   
         default-lazy="true|false"                   
         ...                       
 />


Настройка для полей отдельного класса
Код

<class
        ...
        lazy="true|false"                             
        ...
/>


Для отдельного поля
Код

<property 
         ...
         lazy="true|false" 
         ...
 />


Если используете аннотации, то
Код

@Basic(fetch = FetchType.LAZY)


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



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
MerlinDeep
Дата 3.1.2011, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Цитата(jk1 @ 3.1.2011,  14:42)
Почему бы не воспользоваться ленивой инициализацией для полей? Тогда подтягиваться будут только требуемые поля и ничего больше, и новая сущность будет не нужна.

...

Если используете аннотации, то
Код

@Basic(fetch = FetchType.LAZY)


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

Добрый день, спасибо что откликнулись.

Думаю использование ленивой инициализации конкретно для моего проекта будет несколько проблематично. Проект представляет собой связку hibernate+spring+extjs. Передача объекта extjs происходит путем упаковывания результата полученого от hibernate в json. Т.е. получается что для передачи всегда будут тянутся все поля.
Собственно для этого и возникла потребность в использовании дополительной урезаной сущьности, что бы явно указать что нужны поля такие и такие.
Хотя я может чего-то недопонял.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.