浏览 2179 次
锁定老帖子 主题:Hibernate3.0.5中文查询问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-13
最后修改:2009-07-10
查询的代码如下: ... 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字段的中文条件查询时就没问题。 请问各位,除了第二种方法外,是否还有其它的方法可以解决中文查询?这个究竟什么问题? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-13
由于服务器涉及到其他项目,所以暂时不考虑升级Hibernate...
|
|
返回顶楼 | |
发表时间:2007-07-17
自己顶一下....
|
|
返回顶楼 | |