运算符和参数中的 HQL

Posted

技术标签:

【中文标题】运算符和参数中的 HQL【英文标题】:HQL in operator and parameters 【发布时间】:2009-01-27 15:42:10 【问题描述】:

需要为实体的多个实例查询 NHibernate。我尝试过以下代码,但由于有线 NRE 深入 NHibernate 失败。

var query = NHibernateSession.CreateQuery("from User u where u.id in (:ids)");
query.SetParameterList("ids", new Guid[]);
query.ToList();

这看起来很常见 - 有什么建议吗?

更新仅当数组为空时才会发生这种情况 - 问题已关闭。

【问题讨论】:

【参考方案1】:

:ids 将是一个空的 Guid 数组,不是吗?您要求 NHibernate 为您提供 id 在未初始化的 Guid 数组中的用户。

【讨论】:

是的,我知道。这只是一个例子。将新的 Guid[] 替换为新的 [] Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(),Guid.NewGuid() 但是 Guid 应该给你这个,唯一的 id。您要求数据库上的 id 与一些新的唯一 id 相同。如果我没有得到它,告诉我,我会删除这个答案;) 你没有得到它,但你是对的 :) 错误只发生在空数组上。我刚刚在空数据库上进行了测试。

以上是关于运算符和参数中的 HQL的主要内容,如果未能解决你的问题,请参考以下文章

HQL 中的 between 是不是严格比较?

个人作业1——四则运算题目生成程序

四则运算程序

Java 是不是会检查“&&”(和)运算符中的所有参数,即使其中一个参数为假?

MFC CString 中的可变参数和转换运算符

运算符 ++ 中的 Int 参数