2009-02-19 59 views
0

我想在Criteria API中重現這個查詢。在我的映射中,標籤和產品之間有很多很多,但這隻出現在我的標籤類中,即產品類沒有標籤知識。基本上我想找到所有具有所有標籤列表的產品。這是我生產的SQL,雖然它可能有所改進。我可以使用Criteria API編寫此SQL嗎?

SELECT Product.* FROM Product 

    WHERE Product.ProductID IN (
     SELECT ProductID FROM ProductTagMap 
      INNER JOIN Tag ON ProductTagMap.TagId = Tag.TagId 
       WHERE Tag.UrlName = 'sticks') 

    AND Product.ProductID IN (
     SELECT ProductId FROM ProductTagMap 
      INNER JOIN Tag ON ProductTagMap.TagId = Tag.TagId 
       WHERE Tag.UrlName = 'vic-firth') 

任何想法大加讚賞

回答

1

是的,你可能最好看的DetachedCriteria的。這不完全是你在做什麼,但this blog post有一些使用DetachedCriteria的好例子 - 只需用In替換他的Exists。

+0

謝謝,我花了一段時間想一想,但鏈接肯定有幫助 – Remmus 2009-02-19 14:57:15

相關問題