Ниже мой код:Nhibernate 2: CreateQuery не поддерживает китайский символ
String hsql = "from Customer c where c.name='测试' ";
IQuery query = _session.CreateQuery(hsql);
query.List();
при выполнении, исключение не брошено, но никакого результата запроса возврата (они должны возвращать на основе состояния c.name='测试'
)
это SQL, NHibernate генерировать для HSQL:
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. Любая помощь будет оценена.
Я попробовал. Но все же созданный sql ошибочен. –
Вы пробовали с QueryOver? Это странно, потому что я думаю, что параметр HQL будет идентичен параметрам, используемым для сохранения данных. – dotjoe
Я использую Nhibernate 2.1 и не имею QueryOver, я думаю. –