NHibernate:在 HQL 中返回常量

标签 nhibernate hql

我需要从 NHIbernate 中的 HQL 查询返回一个常量

SELECT new NDI.SomeQueryItem(user, account, " + someNumber + ") 
FROM NDI.SomeObject object

我正在尝试类似上面的东西。我试过这个:

SELECT new NDI.SomeQueryItem(user, account, :someNumber) 
FROM NDI.SomeObject object

然后:

.SetParameter("someNumber", 1).List<SomeQueryItem>();

但在第一种情况下,我得到“未定义的别名或未知的映射 1”。这是有道理的,因为它可能认为 1 是一个别名。

第二个我得到一个“未定义的别名或未知的映射:someNumber”,如果它从未设置参数,这又有意义。

我必须相信有某种方法可以做到这一点。

最佳答案

请继续相信有某种方法可以做到这一点 - 但对于 HQL 来说却没有!

你为什么要这么做?如果您想要将此属性的值更新为您指定的值,请在加载对象后执行此操作。或者,如果您的结果集与您的对象不太匹配,您始终可以使用 SQL 查询(您仍然可以通过 NHibernate session 来执行此操作)。但 NHibernate 的目的是将数据库中的内容映射到对象上,因此完全不允许指定这样的手动覆盖。

关于NHibernate:在 HQL 中返回常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734864/

相关文章:

c# - NHibernate 使用存储过程或映射

c# - 带有 Firebird 的 NHibernate ...是否启用了这些功能?

nhibernate - SchemaExport 与 HiLo 算法

java - 获取最小值的 HQL

java - 将sql转换为hql

java - 使用条件 AND NOT EXISTS 将 SQL 转换为 HQL

java - Hibernate Query.list 返回实际的 Object 实例而不是预期的类型

c# - 使用 nhibernate,我将如何构造一个需要最近 50 行的查询

nhibernate take Skip 没有采取应有的数量