如何解决Hibernate异常:非法尝试取消引用集合
| 考虑以下实体。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。
现在,我必须根据产品实体以及库存实体中的某些条件来检索产品。
例如,给出的条件是旅行开始日期,旅行结束日期必须适合产品的生效日期和有效期。产品库存应具有availableQuantity> 0。
为此,我该如何写hql。我可以写下面的东西吗
Query query = session.createquery(\"from Product As product \" +
\"where product.effectiveDate <= :travelStartDate \"+
\"AND product.expiryDate >= :travelEndDate \" +
\"AND product.productInventories.availableQuantity >0 \");
当我执行以上查询时,它引发了非法尝试取消引用集合异常。
解决方法
您可能想要类似
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。