0

我们正在将一个项目从休眠 1 迁移到休眠 3.3.1,我们遇到了一些查询问题:

java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long

我们现在拥有的代码,曾经在 hibernate 1 中工作,但在 hibernate 3.3.1 中出现上述异常,这段代码是:

        if(args!=null){
            for(int i=0; i<args.length; i++)
                queryObject.setParameter(i, args[i]);
        }

args 是一个对象 []

查询是,例如:

select obj.oid,obj.codTipoTrafico,obj.nomEmpresaOper,obj.codOrigen,obj.codFuente,obj.codIdnFuente,to_char(obj.fecFuente,'DD/MM/YYYY') from OperacionComercial obj where obj.indTpoOper = ? and obj.oidEmpresa = ? order by  order by obj.oca desc

Hibernate 不能再从 String自动转换为 Long 了?

提前致谢

4

1 回答 1

0

更改休眠配置属性“hibernate.query.factory_class”以将 ClassicQueryTranslator 用于 HQL,问题就解决了……(至少对我而言)。

<props>
     <prop key="hibernate.query.factory_class">
          org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    </prop>
</props>
于 2013-01-11T12:52:01.247 回答