0

プロジェクトを休止状態 1 から休止状態 3.3.1 に移行していますが、いくつかのクエリに問題があります。

java.lang.ClassCastException: java.lang.String は java.lang.Long にキャストできません

現在のコードは、休止状態 1 で動作していましたが、休止状態 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 に自動変換できなくなりましたか?

前もって感謝します

4

1 に答える 1

0

hibernate 構成プロパティ「hibernate.query.factory_class」を HQL に ClassicQueryTranslator を使用するように変更すると、問題は解決されます...(少なくとも私にとっては)。

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