在HQL中获取产品时,我有点困惑。 产品有多个SKU,SKU有多种可用性。 下面是我的hql查询。
select distinct p from Product p
join p.skus sku
join sku.availibility a
where sku.skuType = "DEFAULT" AND a.available = true && a.day = 5;
我必须过滤skuType为" DEFAULT"的产品。并且只有那个sku的可用性(" DEFAULT"类型)。
我很困惑,因为..我正在考虑上面的查询可用和a.day部分将检查所有的skus而不仅仅是默认的sku ..
这个查询的行为如何?
我错了吗 ?如果是,那么如何对此进行查询?
谢谢, ANKIT
答案 0 :(得分:0)
不,您的查询只会返回一组products P
,其中e
中的每个P
都与以下内容匹配:
e
的{{1}}有SKU
AND skuType="DEFAULT"
有e
SKU
且skuType="DEFAULT"
有SKU
WHERE availability a
您的评论
我正在考虑上面的查询可用,a.day部分将检查所有skus而不仅仅是默认的sku ..
是的,查询执行将遍历您的a.available = true && a.day = 5
集,但仅返回符合上述条件的产品。