hibernate3做中文查询的时候用StringBuffer拼接HQL语句查询,发现show_sql中打印出来信息乱码。找到两种解决方案。
1.在hibernate.cfg.xml中添加如下信息
<property name="query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</property>
2.将中文的查询条件采用预编译的方式拼接
String hql = "from XXX t where t.XXX=?";
....
query = session.createQuery(hql);
query.setString(index,value);
query.list();