Nhibernate 我可以使用CriteriaAPI编写这个SQL吗?

Nhibernate 我可以使用CriteriaAPI编写这个SQL吗?,nhibernate,Nhibernate,我试图在CriteriaAPI中重现此查询。在我的映射中,我在标记和产品之间有一个多对多的映射,但这只出现在我的标记类中,即产品类不知道标记。基本上,我想找到所有有标签列表的产品。下面是我生成的sql,尽管可能会有所改进 SELECT Product.* FROM Product WHERE Product.ProductID IN ( SELECT ProductID FROM ProductTagMap INNER JOIN Tag ON P

我试图在CriteriaAPI中重现此查询。在我的映射中,我在标记和产品之间有一个多对多的映射,但这只出现在我的标记类中,即产品类不知道标记。基本上,我想找到所有有标签列表的产品。下面是我生成的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')

任何想法,非常感谢

是的,您可能最好看看DetachedCriteria。这并不完全是你正在做的事情,但有一些使用DetachedCriteria的好例子——只需将他的Exists替换为In即可。

谢谢,我花了一段时间的简单思考才弄明白,但链接确实有帮助