Hibernate Исключение: незаконная попытка разыменования коллекции - PullRequest
2 голосов
/ 13 июня 2011

Рассмотрим следующие сущности.

public class Product{
int id;
Date effectiveDate;
Date expiryDate;
Set<Inventory> productInventories;
}

public class Inventory{
int invId;
Date inventoryDate;
boolean soldOut;
int availableQuantity;
Product product;
}

Вышеуказанные две сущности соответствуют таблицам Product и Inventory соответственно.

Теперь мне нужно получить Продукты на основе определенных условий в сущности Продукт, а также в Инвентаризации.

Например, для условий указаны дата начала поездки, а дата окончания поездки должна соответствовать действительности и истечению срока действия.дата продукта.Инвентаризация продукта должна иметь в наличииQuantity> 0.

. Для этого как я могу написать hql.Могу ли я написать что-то вроде следующего

Query query = session.createQuery("from Product As product " +
                          "where product.effectiveDate <= :travelStartDate "+
                          "AND product.expiryDate >= :travelEndDate " +
                          "AND product.productInventories.availableQuantity >0 ");

Когда я выполняю вышеупомянутый запрос, он выдает незаконную попытку разыменования исключения из коллекции.

1 Ответ

6 голосов
/ 13 июня 2011

Вы, вероятно, хотите что-то вроде

from Product as product 
    inner join product.productInventories inv with inv.availableQuantity>0 

См. http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-joins

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...