1

以下は私のコードです:

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

実行時に例外はスローされませんが、クエリ結果は返されません(条件に基づいて返される必要がありますc.name='测试'

これは、hsql用に生成されたSQLNHibernateです。

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を使用してテキストを検索している場合のみです。どんな助けでもありがたいです。

4

1 に答える 1

0

パラメータを使用して試すことができますか?

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

Hibernateクエリの関連する Unicode文字列

于 2012-06-07T13:59:05.623 に答える