Nhibernate 2:CreateQuery不支持中文字符

时间:2012-06-07 13:46:30

标签: c# nhibernate

以下是我的代码:

String hsql = "from Customer c where c.name='测试' ";
IQuery query = _session.CreateQuery(hsql);
query.List();

执行时,没有抛出异常,但没有返回查询结果(它们应该根据条件c.name='测试'返回)

这是为hsql生成的SQL NHibernate:

select customer0_.CUSTOMER_NO as CUSTOMER1_, customer0_.CODE as CODE9_, customer0_.NAME as NAME9_, customer0_.STATUS as STATUS9_, customer0_.LAST_OPE RATOR_NO as LAST5_9_
from CUSTOMER customer0_ where (customer0_.NAME='????')

hsql中的汉字'测试'变为'????'在sql。

当我通过Nhibernate添加客户时,中文字符成功保存。这里的问题仅在我使用CreateQuery搜索文本时。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

可以使用参数尝试吗?

String hsql = "from Customer c where c.name=:name";
IQuery query = _session.CreateQuery(hsql).SetString("name", "测试");
query.List();

相关 Unicode String in Hibernate Queries