#java #hibernate #hql
#java #гибернация #hql
Вопрос:
У меня есть такие объекты, как ProductType, Product и ProductInventory.
У меня есть запрос объединения для извлечения списка запасов для определенного диапазона дат, который объединяет Product и ProductInventory. У меня есть список массивов объектов, которые я привел в действие, и подготовил его.
Теперь из DAO я возвращаю список продуктов.
На моем уровне выше, если я выполняю product.getProductInventory (), это фактически запускает запрос снова, получая весь инвентарь, а не тот инвентарь, который получен при объединении.
final StringBuilder queryString = new StringBuilder(
"from Product As rsProduct left outer join rsProduct.inventoryList "
"as inventory where rsProduct.efDate <= :travelEndDate AND rsProduct.expDate >= :travelStartDate AND rsProduct.locatiion = :LOCN AND rsProduct.id in (:productsIdList) and inventory.bookDate between :startDate and :endDate");
Пример. Допустим, дата начала путешествия — 20 января, а дата окончания путешествия — 21 января. Я получаю здесь только две записи, что идеально.
Но после того, как я вернусь к другому уровню, если я скажу product.getInventory(), он извлекает весь инвентарь независимо от дат.
Может ли кто-нибудь решить эту проблему?
Комментарии:
1. Пожалуйста, отформатируйте свой код. Приведенный выше код даже не будет скомпилирован.
2. Шон, теперь он отформатирован. Проверьте это
Ответ №1:
Вы должны определить фильтр и включить его перед доступом к коллекции.