2014-04-08 152 views
0

我在使用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」 型)的availiblity的產品。
我很困惑,因爲..我想在上面的查詢可用和a.day部分將檢查所有skus不只是默認sku ..
這個查詢如何表現? 我錯了嗎?如果是,那麼如何才能查詢結構化呢?

感謝, ANKIT

回答

0

不,你的查詢只返回一組products P,其中P每個e以下匹配:

  1. eSKU具有skuType="DEFAULT"
  2. eSKU這是skuType="DEFAULT"而且SKUavailability a WHE RE a.available = true && a.day = 5

您的評論

我想在上面的查詢,並提供部分a.day將在所有的SKU檢查不只是默認SKU ..

是的,它查詢執行將循環遍歷您的CROSS JOIN集合,但它會ONLY RETURN產品符合上述條件。