【问题标题】:Does NHibernate HQL support the UNION ALL keyword?NHibernate HQL 是否支持 UNION ALL 关键字?
【发布时间】:2009-10-29 10:46:01
【问题描述】:

经过广泛的谷歌搜索,我仍然找不到这个问题的明确答案。我看过的一些旧文章/博客文章根本没有说。如果底层数据库支持它,有人说是的。它是哪一个?我在 nhusers 组上问了到目前为止没有答案。任何帮助将不胜感激。

【问题讨论】:

    标签: nhibernate hql union-all


    【解决方案1】:

    NHibernate 不支持联合。结果中始终存在一种类型。

    您可以做的是对基类或接口的查询。 NHibernate 将执行联合以从实体映射到的所有表中获取所有值。

    还有union-subclass映射策略,也暗示有基类或接口。

    【讨论】:

    • 嘿 Stefan,使用接口/基类是指使用多态查询,对吧?我遵循了多态策略(一个接口,两个具体类)并且查询工作正常,但 IQueryable.Count() 没有返回所需的值。它只返回第一种类型的计数。我想知道你有没有遇到过这样的问题? [我认为计数问题可能与 NH-2500 有关]
    • 我觉得和NH-2500(nhibernate.jira.com/browse/NH-2500)没有关系,跟查询参数有关。很可能“选择计数”只是没有以这种方式实现。我没有找到任何资源。您可以在代码中找到它。
    【解决方案2】:

    HQL 不支持union 也不支持intersect。您可能可以通过Criteria 或原生 SQL 来实现。

    来源:https://www.hibernate.org/117.html#A21

    【讨论】:

      【解决方案3】:

      我在某处读到它没有,尽管我不知道为什么。 最好的观察方式是亲自尝试......

      【讨论】:

      猜你喜欢
      • 2013-08-20
      • 2010-09-21
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      相关资源
      最近更新 更多