Hibernate3.0.5中文查詢問題

各位好,在這裏提個問題,是我現在項目裏面未解決的,由於本人對Hibernate的駕馭能力有限,貼出來大家研究一下,希望能找到解決的辦法。
查詢的代碼如下:
...
session = dbLink.getJDBCConn();
tx = session.beginTransaction();
Query query = session.createQuery("from EsClass ec where ec.Name=? and ec.EsSchool.id=?");
query.setString(0, className);
query.setInteger(1, schoolid);
//Query query1 = session.createQuery("from EsClass ec where ec.Name=:className and ec.EsSchool.id=:schoolid");
//query1.setString("className", className);
//query1.setInteger("schoolid", schoolid);
List list = query.list();
tx.commit();
...
其中className爲中文,從Oracle數據庫中查得,該數據字段的類型是char類型。
使用這兩種帶參數的方法都查詢不到,如果使用
...
Query query = session.createQuery("from EsClass ec where ec.Name='"+className+"' and ec.EsSchool.id="+schoolid);
...
進行查詢,則需要在hibernate.cfg.xml加上
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>則可以查詢到。

由於配置文件涉及到其他項目,當修改了配置文件後,出現其他項目一些地方無法查詢(使用ID主鍵),可能需要大量修改其他的程序。
所以不能修改配置文件;且項目中要求使用統一的方法建立SessionFacrory,即不能自己爲自己的系統中文查詢部分單獨加載配置文件來建立自己的SessionFacrory;
說明一點,在使用帶參數方法進行非char字段的中文條件查詢時就沒問題。

請問各位,除了第二種方法外,是否還有其它的方法可以解決中文查詢?這個究竟什麼問題?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章