NHibernate HQL 是不是支持 UNION ALL 关键字?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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】:

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

【讨论】:

@Dani:在这里!!! ***.com/questions/247103/…

以上是关于NHibernate HQL 是不是支持 UNION ALL 关键字?的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate HQL Generator支持SQL Server 2016时态表

如何在nHibernate中运行更新HQL查询?

Nhibernate HQL 匿名类(严格说是map的使用以及构造函数的使用

从 nhibernate hql 返回不在映射文件中的对象

如何在 Hql 中执行 ThenFetch 以及如何分解 nhibernate linq 中的许多连接?

NHibernate 急切负载