【问题标题】:Hibernate multiple join休眠多连接
【发布时间】:2014-04-08 10:03:18
【问题描述】:

在 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 部分将检查所有 sku,而不仅仅是默认 sku..
此查询的行为如何? 我错了吗 ?如果是,那么如何为此构造查询?

谢谢, Ankit

【问题讨论】:

    标签: mysql hibernate hql


    【解决方案1】:

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

    1. e 有一个 SKUskuType="DEFAULT" AND
    2. e 有一个 SKUskuType="DEFAULT" 并且 SKUavailability a 哪里是 a.available = true && a.day = 5

    你的评论

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

    是的,查询执行将遍历您的 CROSS JOIN 集,但它会仅返回符合上述条件的产品。

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2016-07-15
      • 2011-01-05
      相关资源
      最近更新 更多