我需要从 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/