Hibernate多个连接

时间:2014-04-08 10:03:19

标签: mysql hibernate hql

在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

1 个答案:

答案 0 :(得分:0)

不,您的查询只会返回一组products P,其中e中的每个P都与以下内容匹配:

  1. e的{​​{1}}有SKU AND
  2. skuType="DEFAULT"e SKUskuType="DEFAULT"SKU WHERE availability a
  3. 您的评论

      

    我正在考虑上面的查询可用,a.day部分将检查所有skus而不仅仅是默认的sku ..

    是的,查询执行将遍历您的a.available = true && a.day = 5集,但仅返回符合上述条件的产品。