【问题标题】:Nhibernate DetachedCriteria Left Outer Join on subquery子查询上的 Nhibernate DetachedCriteria Left Outer Join
【发布时间】:2009-08-27 15:55:04
【问题描述】:

我只会尝试介绍问题的主要部分,因为整个情况要复杂得多 - 我无法使用 DetachedCriteria 实现以下目标

SELECT *
FROM User
LEFT OUTER JOIN GroupItem
ON User.ID = GroupItem.UserID
AND _groupItemRestrictions_

可以有多个 GroupDefinition,用户可以属于多个 GroupItem,每个 GroupItem 都属于它自己的 GroupDefinition。由于分页/排序和(多级)组行为的一些复杂原因,我无法使用此查询实现适当的分页行为:

SELECT *
FROM User
LEFT OUTER JOIN GroupItem
ON User.ID = GroupItem.UserID
WHERE _groupItemRestrictions_

类似第二个的查询是这样产生的:

var criteria = DetachedCriteria.For<User>()
...
GroupItem groupItem = null;
criteria.CreateAlias(() => groupItemAlias, () => groupItem,
                                                JoinType.LeftOuterJoin);
criteria.Add(Restrictions.Or(...));
...

是否可以使用 DetachedCriteria 创建第一个查询?

谢谢!

【问题讨论】:

    标签: c# sql nhibernate subquery detachedcriteria


    【解决方案1】:

    似乎还没有办法用 DetachedCriteria 指定这样的查询,但是 HQL 使用 'with' 子句:

    http://fabiomaulo.blogspot.com/2009/05/nhibernate-210-hql-with-clause.html

    http://www.mail-archive.com/nhusers@googlegroups.com/msg08451.html

    更新:

    https://nhibernate.jira.com/browse/NH-1946

    该功能现已实施。感谢 NH 团队:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 2014-07-14
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多