`
冽豹之姿
  • 浏览: 40600 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibernate 3 中文乱码的解决(转)

阅读更多
最近在项目中遇到了一个问题,就是做查询的时候,如果用户输入中文的话,明明数据库有这样的记录,却怎么也检索不到结果。作为调试的手段,我把hql语句打印出来,也没有发现什么问题,和预期的一样。甚是郁闷,后来,上网查了一下资料,原来是hibernate3对中文的支持不是太好,需要在hibernate的配置文件中添加一个属性,(这里使用了spring的IOC容器来注入)
   <property name="hibernateProperties">
    <props>
     <prop key="hibernate.query.factory_class">
      ${hibernate.query.factory_class}<!--添加这个属性就可以了-->
     </prop>
........................
</property>
   org.hibernate.hql.classic.ClassicQueryTranslatorFactory
原因是hibernate在把hql转换成sql语句的时候,出现了乱码(如果有中文的话),按以上的配置的话,就没有什么问题了。还有一个方法就是,使用预编译的hql,然后动态绑定参数。不过这个方法是针对这一个函数本身而言的,如果你是使用Hibernate3而很多查询涉及中文的话,最好使用配置文件的方式,简单。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics