hibernate3中解决中文乱码的有关问题

hibernate3中解决中文乱码的问题

今天写程序的时候发现查询语句中如果带有中文,则到了hibernate中会变成乱码

后来查了很多网页后解决了这个问题,这个问题的解决有好多中方法,如下所示:

方法一:

hibernate.query.factory_class 属性设置成 org.hibernate.hql.classic.ClassicQueryTranslatorFactory

但是这种方法是以前在hibernate2中使用的方法,所以一般在hibernate3中不推介使用,在hibernate3中我们一般都使用点位符来解决这个问题就是我们需要将查询语句改为如下所示

如:Query query = session.createQuery("from Person p where p.name=:name");
query.setParameter("name","杭州");
这中方法我已经试过是了可以行的通。
后来在别的地方看到了另外一种解决方法,就是将hibernate3的包进行升级,升级到Hibernate3.1 rc2 ,但是这种方法没有试过,读者可以自己去试下,呵呵
1 楼 laiseeme 2007-08-10  
没有遇到过 可能是数据库不同吧,你用的是什么数据库?
2 楼 coolfish0906 2007-08-10  
我使用的是oracle的数据
3 楼 peterwei 2007-08-10  
工作中一直用hibernate和oracle,没有什么特别的配置。中文查询没出现过乱码。反到是平时用mysql时,中文乱码很容易出现。