我正在尝试在Criteria API中重现此查询。在我的映射中,Tag和Product之间有很多对,但这只出现在我的Tag类中,即Product类不知道标签。基本上我想找到所有包含所有标签列表的产品。这是我制作的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')
任何想法,非常感谢
答案 0 :(得分:1)
是的,你最好看看DetachedCriteria的。这不完全是你正在做的事情,但this blog post有一些使用DetachedCriteria的好例子 - 只需用In替换他的存在。