ivandasilva 30 de mar. de 2012
Será que alterando no banco e no seu mapeamento ORM não funciona, apenas um chute
fabiomedeirosf 30 de mar. de 2012
Mude o tipo do seu id para Long.
JoseBarros 30 de mar. de 2012
Nao posso mudar o banco e isto esta em produção.
JoseBarros 30 de mar. de 2012
Ja tentei mudar o id para diversos tipos, Long, Float, BigInteger, nada funciona.
java . lang . ClassCastException : java . lang . Integer cannot be cast to java . math . BigInteger
java . lang . ClassCastException : java . lang . Integer cannot be cast to java . lang . Long
Parece que o hibernate so esta aceitando um Integer ali!!!
fabiomedeirosf 30 de mar. de 2012
E Double na sua entidade, já tentou?
JoseBarros 30 de mar. de 2012
Ja sim.
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
maior_abandonado 30 de mar. de 2012
JoseBarros:
Ola Amigos,
Estou recebendo um erro na execução de uma query
Caused by : org . hibernate . exception . GenericJDBCException : could not execute query
at org . hibernate . exception . SQLStateConverter . handledNonSpecificException ( SQLStateConverter . java : 126 )
at org . hibernate . exception . SQLStateConverter . convert ( SQLStateConverter . java : 114 )
at org . hibernate . exception . JDBCExceptionHelper . convert ( JDBCExceptionHelper . java : 66 )
at org . hibernate . loader . Loader . doList ( Loader . java : 2231 )
at org . hibernate . loader . Loader . listIgnoreQueryCache ( Loader . java : 2125 )
at org . hibernate . loader . Loader . list ( Loader . java : 2120 )
at org . hibernate . loader . hql . QueryLoader . list ( QueryLoader . java : 401 )
at org . hibernate . hql . ast . QueryTranslatorImpl . list ( QueryTranslatorImpl . java : 361 )
at org . hibernate . engine . query . HQLQueryPlan . performList ( HQLQueryPlan . java : 196 )
at org . hibernate . impl . SessionImpl . list ( SessionImpl . java : 1148 )
at org . hibernate . impl . QueryImpl . list ( QueryImpl . java : 102 )
at org . hibernate . ejb . QueryImpl . getResultList ( QueryImpl . java : 67 )
... 73 more
Caused by : java . sql . SQLException : Numeric Overflow
at oracle . jdbc . driver . DatabaseError . throwSqlException ( DatabaseError . java : 112 )
at oracle . jdbc . driver . DatabaseError . throwSqlException ( DatabaseError . java : 146 )
at oracle . jdbc . driver . DatabaseError . throwSqlException ( DatabaseError . java : 208 )
at oracle . jdbc . driver . NumberCommonAccessor . throwOverflow ( NumberCommonAccessor . java : 7465 )
at oracle . jdbc . driver . NumberCommonAccessor . getInt ( NumberCommonAccessor . java : 123 )
at oracle . jdbc . driver . OracleResultSetImpl . getInt ( OracleResultSetImpl . java : 521 )
at oracle . jdbc . driver . OracleResultSet . getInt ( OracleResultSet . java : 1563 )
at org . apache . tomcat . dbcp . dbcp . DelegatingResultSet . getInt ( DelegatingResultSet . java : 275 )
at org . apache . tomcat . dbcp . dbcp . DelegatingResultSet . getInt ( DelegatingResultSet . java : 275 )
at org . hibernate . type . IntegerType . get ( IntegerType . java : 51 )
at org . hibernate . type . NullableType . nullSafeGet ( NullableType . java : 184 )
at org . hibernate . type . NullableType . nullSafeGet ( NullableType . java : 173 )
at org . hibernate . loader . Loader . getKeyFromResultSet ( Loader . java : 1121 )
at org . hibernate . loader . Loader . getRowFromResultSet ( Loader . java : 588 )
at org . hibernate . loader . Loader . doQuery ( Loader . java : 724 )
at org . hibernate . loader . Loader . doQueryAndInitializeNonLazyCollections ( Loader . java : 259 )
at org . hibernate . loader . Loader . doList ( Loader . java : 2228 )
Na tabela em questão existe uma coluna NUMBER.
Name Null Type
----------------- ---- --------------
EVENT_NO NUMBER
A tabela esta mapeada assim
@Id
@Column ( name = "EVENT_NO" )
private Integer id ;
Acontece que o valor retornado pela query ([telefone removido]) e maior que integer que vai ate [telefone removido].
Tentando mudar o meu tipo java para Long, recebo um
java . lang . ClassCastException : java . lang . Integer cannot be cast to java . lang . Long
O que fazer agora? Alguém tem uma solução?
não tem alguma FK no seu banco utilizando este campo, seja como referenciador ou como referenciado?
outra coisa que ia sugerir o teste é mudar para double ou float (primitivo mesmo).
JoseBarros 30 de mar. de 2012
maior_abandonado:
JoseBarros:
Ola Amigos,
Estou recebendo um erro na execução de uma query
Caused by : org . hibernate . exception . GenericJDBCException : could not execute query
at org . hibernate . exception . SQLStateConverter . handledNonSpecificException ( SQLStateConverter . java : 126 )
at org . hibernate . exception . SQLStateConverter . convert ( SQLStateConverter . java : 114 )
at org . hibernate . exception . JDBCExceptionHelper . convert ( JDBCExceptionHelper . java : 66 )
at org . hibernate . loader . Loader . doList ( Loader . java : 2231 )
at org . hibernate . loader . Loader . listIgnoreQueryCache ( Loader . java : 2125 )
at org . hibernate . loader . Loader . list ( Loader . java : 2120 )
at org . hibernate . loader . hql . QueryLoader . list ( QueryLoader . java : 401 )
at org . hibernate . hql . ast . QueryTranslatorImpl . list ( QueryTranslatorImpl . java : 361 )
at org . hibernate . engine . query . HQLQueryPlan . performList ( HQLQueryPlan . java : 196 )
at org . hibernate . impl . SessionImpl . list ( SessionImpl . java : 1148 )
at org . hibernate . impl . QueryImpl . list ( QueryImpl . java : 102 )
at org . hibernate . ejb . QueryImpl . getResultList ( QueryImpl . java : 67 )
... 73 more
Caused by : java . sql . SQLException : Numeric Overflow
at oracle . jdbc . driver . DatabaseError . throwSqlException ( DatabaseError . java : 112 )
at oracle . jdbc . driver . DatabaseError . throwSqlException ( DatabaseError . java : 146 )
at oracle . jdbc . driver . DatabaseError . throwSqlException ( DatabaseError . java : 208 )
at oracle . jdbc . driver . NumberCommonAccessor . throwOverflow ( NumberCommonAccessor . java : 7465 )
at oracle . jdbc . driver . NumberCommonAccessor . getInt ( NumberCommonAccessor . java : 123 )
at oracle . jdbc . driver . OracleResultSetImpl . getInt ( OracleResultSetImpl . java : 521 )
at oracle . jdbc . driver . OracleResultSet . getInt ( OracleResultSet . java : 1563 )
at org . apache . tomcat . dbcp . dbcp . DelegatingResultSet . getInt ( DelegatingResultSet . java : 275 )
at org . apache . tomcat . dbcp . dbcp . DelegatingResultSet . getInt ( DelegatingResultSet . java : 275 )
at org . hibernate . type . IntegerType . get ( IntegerType . java : 51 )
at org . hibernate . type . NullableType . nullSafeGet ( NullableType . java : 184 )
at org . hibernate . type . NullableType . nullSafeGet ( NullableType . java : 173 )
at org . hibernate . loader . Loader . getKeyFromResultSet ( Loader . java : 1121 )
at org . hibernate . loader . Loader . getRowFromResultSet ( Loader . java : 588 )
at org . hibernate . loader . Loader . doQuery ( Loader . java : 724 )
at org . hibernate . loader . Loader . doQueryAndInitializeNonLazyCollections ( Loader . java : 259 )
at org . hibernate . loader . Loader . doList ( Loader . java : 2228 )
Na tabela em questão existe uma coluna NUMBER.
Name Null Type
----------------- ---- --------------
EVENT_NO NUMBER
A tabela esta mapeada assim
@Id
@Column ( name = "EVENT_NO" )
private Integer id ;
Acontece que o valor retornado pela query ([telefone removido]) e maior que integer que vai ate [telefone removido].
Tentando mudar o meu tipo java para Long, recebo um
java . lang . ClassCastException : java . lang . Integer cannot be cast to java . lang . Long
O que fazer agora? Alguém tem uma solução?
não tem alguma FK no seu banco utilizando este campo, seja como referenciador ou como referenciado?
outra coisa que ia sugerir o teste é mudar para double ou float (primitivo mesmo).
Ja tentei, double, float e tanto objeto como primitivo. Mesmo problema. E nao tem FK utilizando esse campo!
Alguem tem alguma outra ideia???
apalmeira 3 de jun. de 2013
Mesmo problema!
Alguém sabe a solução?
apalmeira 2 de jul. de 2013
JotaJota 18 de out. de 2013
at oracle . jdbc . driver . NumberCommonAccessor . getInt ( NumberCommonAccessor . java : 123 )
at oracle . jdbc . driver . OracleResultSetImpl . getInt ( OracleResultSetImpl . java : 521 )
at oracle . jdbc . driver . OracleResultSet . getInt ( OracleResultSet . java : 1563 )
Pode ver que dá exceção em um monte de getInt()
Provavelmente é a propriedade ID ou alguma outra propriedade do tipo integer da sua entidade, que na hora que faz o Parse do registro para um objeto, ele não consegue colocar aquele valor porque não tem espaço.
Provavelmente algum valor de campo Inteiro de algum registro que está no retorno desta consulta (query) é tão grande que não cabe na propriedade do objeto.
Tente trabalhar com os próximos tipos inteiros ( long, Long BigInteger) em todos os campos do tipo Integer de sua entidade.
Eu tive um problema parecido, eu tinha um registro que tinha um id = 994999219998213259939 (exemplo)
Este id era do tipo Long no objeto e quando eu fazia a query, este registro estava nesta listagem e não funcionava. numeric overflow ! resolvi trocando o tipo Long para BIGINTEGER
Espero ter ajudado.
Até mais.