| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > hibernate load object by filtre |
| Автор: askell 21.4.2010, 21:23 |
| Пипл хелп))) Очень нужно))) Проблема следующая. Работаю с базой через 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 22.4.2010, 10:32 |
| Попробуй вот такой рестрикшн Restrictions.sqlRestriction(sql). |
| Автор: askell 22.4.2010, 12:47 |
А по подробнее можешь написать? |
| Автор: 5ad1sT 22.4.2010, 14:07 |
| Вот пример. http://www.java2s.com/Tutorial/Java/0350__Hibernate/AddRestrictionssqlRestrictiontoCriteria.htm |
| Автор: MisterCleric 23.4.2010, 09:21 | ||
| Привет. В книжке http://www.google.com/search?q=java+persistence+with+hibernate Есть такая глава: 12.3.1 Dynamic data filters Так вот там и написано о желаемых фильтрах:
Сам никогда их не пробовал, но вот есть такое. Попробуй - расскажешь |
| Автор: askell 24.4.2010, 10:58 |
| Спасибо) Этот вариант отлично подойдет)) |
| Автор: askell 1.5.2010, 02:24 |
| Фильтры вообще штука классная. я не знал что их можно использовать внутри маппинга для связей. Сорри, этот вариант я юзал только в тесте, все отлично)))) |