![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
askell |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.11.2008 Репутация: нет Всего: нет |
Пипл хелп))) Очень нужно)))
Проблема следующая. Работаю с базой через hibernate. Использую критерю для обращения к объекту. У меня есть бин Manufacturer у него есть связь one-to-many к бину Product. Соответственно когда я вытаскиваю бин Manufacturer он подгружает коллекцию объектов Product. Например производитель "HTC" и все его продукты. Мне нужно фильтровать это коолекцию чтобы продукты выбирались по полю стоимость. Criteria criteria = session.createCriteria(Manufacturer.class); criteria.add(Restrictions.eq("code", getManufacturer().getCode())); // незнаю что вставить чтобы getProductListCollection() возвращялась не вся а по заданному параметру Manufacturer manufacturer = (Manufacturer)criteria.uniqueResult(); manufacturer.getProductListCollection() - нужно чтобы коллекция проинициализированая hibernate возвращала не все записи связанные с производителем а по критерию На sql это делается в два запроса. 1) select * from Manufacturer m where m.id = 5- получаем производителя 2) select * from Product p where p.manufacturerId = 5 and p.cost = 100 |
|||
|
||||
5ad1sT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.2.2009 Репутация: нет Всего: нет |
Попробуй вот такой рестрикшн Restrictions.sqlRestriction(sql).
|
|||
|
||||
askell |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.11.2008 Репутация: нет Всего: нет |
||||
|
||||
5ad1sT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.2.2009 Репутация: нет Всего: нет |
||||
|
||||
askell |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.11.2008 Репутация: нет Всего: нет |
Спасибо, только это совсем не то: Criteria crit = session.createCriteria(Survey.class); crit.add(Restrictions.sqlRestriction("name like 'S%'")); здесь он непосредственно добавляет критерию в обект Survey, а в моем случае producs является коллекцией из другой таблицы в объекте Manufacturer. Hibernate генерит отдельный запрос для получения этих данных. |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Привет.
В книжке Java persistence with hibernate Есть такая глава: 12.3.1 Dynamic data filters Так вот там и написано о желаемых фильтрах:
Сам никогда их не пробовал, но вот есть такое. Попробуй - расскажешь -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
askell |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.11.2008 Репутация: нет Всего: нет |
Спасибо) Этот вариант отлично подойдет))
|
|||
|
||||
askell |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.11.2008 Репутация: нет Всего: нет |
Фильтры вообще штука классная. я не знал что их можно использовать внутри маппинга для связей. Сорри, этот вариант я юзал только в тесте, все отлично))))
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |