微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hibernate异常:非法尝试取消引用集合

如何解决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 举报,一经查实,本站将立刻删除。