以下是我的代码:
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搜索文本时。任何帮助将不胜感激。
答案 0 :(得分:0)
可以使用参数尝试吗?
String hsql = "from Customer c where c.name=:name";
IQuery query = _session.CreateQuery(hsql).SetString("name", "测试");
query.List();