NHibernate中的命名查询不等于运算符

Posted

技术标签:

【中文标题】NHibernate中的命名查询不等于运算符【英文标题】:named query in NHibernate with not equal operator 【发布时间】:2016-11-14 16:00:05 【问题描述】:

NHibernate 抛出异常,sql server 不等于运算符<>

<sql-query name="Select">
    <return alias="OrderStock" class="OrderStock"/>
select * from OrderStock WHERE dh.DATE_UNLOADED <> '1753-01-01'
</sql-query>

名称不能以“>”字符开头

【问题讨论】:

您是否尝试将查询包装在&lt;![CDATA[]]&gt; 中? 不,我没试过 【参考方案1】:

我们可以像这样使用&amp;lt;&amp;gt; 转义符号&lt;&gt;

<sql-query name="Select">
    <return alias="OrderStock" class="OrderStock"/>
select * from OrderStock WHERE dh.DATE_UNLOADED &lt;&gt; '1753-01-01'
</sql-query>

或者我们可以使用&lt;![CDATA[ .... ]]&gt;的xml原始文本转义:

<sql-query name="Select">
    <return alias="OrderStock" class="OrderStock"/>
<![CDATA[
select * from OrderStock WHERE dh.DATE_UNLOADED <> '1753-01-01'
]]>
</sql-query>

【讨论】:

以上是关于NHibernate中的命名查询不等于运算符的主要内容,如果未能解决你的问题,请参考以下文章

nhibernate中的命名查询错误

获取 NHibernate 中的命名查询列表

nHibernate 命名查询不返回所有结果

使用 PostgreSQL 和 NHibernate 的命名查询

列错误中的冒号 ':' - 并非所有命名参数都已在 Nhibernate 中设置?

NHibernate - 如何使用参数值记录命名参数化查询?