迁移Hibernate 1到3.3

时间:2013-01-09 17:44:11

标签: exception casting hibernate3

我们正在将项目从hibernate 1迁移到hibernate 3.3.1,而且我们遇到一些Querys的问题:

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是一个Object []

和查询是,例如:

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?

提前致谢

1 个答案:

答案 0 :(得分:0)

更改hibernate配置属性“hibernate.query.factory_class”以使用ClassicQLTranslator进行HQL,问题解决了......(至少对我而言)。

<props>
     <prop key="hibernate.query.factory_class">
          org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    </prop>
</props>