【问题标题】:NHibernate many-to-many criteriaNHibernate 多对多标准
【发布时间】:2010-09-26 10:30:49
【问题描述】:

我有实体 Problem 使用 many-to-many 映射到实体 Tag(Problem 有标签列表)。我想加载所有具有特定标签问题
例如:
问题 1 (tag1)
问题 2 (tag1, tag2)
问题3 (tag1, tag3)
问题 4 (tag3, tag4)
我想通过过滤器“tag1, tag2”来解决问题。系统应返回:
问题 1 (tag1)
问题 2 (tag1, tag2)
问题3 (tag1, tag3)
我已经为这个问题困惑了一个星期。你有什么想法吗?
P.S.加载所有列表并使用 LINQ 过滤它是最后一个可能的变体...

【问题讨论】:

    标签: .net nhibernate


    【解决方案1】:

    HQL 比 Criteria 更适合这些查询。

    一种可能的解决方案:

    session.CreateQuery(@"select distinct p
                          from Problem p
                          join p.Tags t
                          where t in (:tags)")
           .SetParameterList("tags", listOfTags)
    

    【讨论】:

    • 我可以同时使用 HQL 查询和条件吗?问题是我也需要分页(SetFirstResult() 和 SetMaxResult())。
    • HQL 和 Criteria 是不同的方法。但是你也可以在 HQL 查询中使用 SetFirstResult 和 SetMaxResult。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2014-01-28
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多