Olá pessoal.
Utilizando o hibernate para fazer uma consulta em uma tabela associativa, sempre me retorna o erro:
Caused by: java.sql.SQLException: Fail to convert to internal representation
Alguém já passou por isso??
Ricardo Moura
Olá pessoal.
Utilizando o hibernate para fazer uma consulta em uma tabela associativa, sempre me retorna o erro:
Caused by: java.sql.SQLException: Fail to convert to internal representation
Alguém já passou por isso??
Ricardo Moura
da um saque na sua sql,esse erro ta com cara de ser algo la
se puder mostra-la aqui no forum será legal
Abaixo as consultas que estou tentando fazer:
1 - List resultadoPesquisa = find(“FROM APROVACAO_DETALHE in class com.ge.controlequalidade.dto.AprovacaoDetalhe WHERE idTqd=”+idTqd+"");
2 - List resultadoPesquisa = find(“FROM APROVACAO_DETALHE in class com.ge.controlequalidade.dto.AprovacaoDetalhe WHERE 1=1”);
As duas consultas retornam o mesmo erro.
sequestrei isso do site da oracle…
no fim
Problem Description
--------------------
When creating a Event in Business Object using the Import functionality in
iStudio, which might looks like this:
[...]
JDT
+-JOB [ARRAY]
'-EnvType
'-OwnerDepot
+-Jobsplit
+-Address
'-FirstName
'-LastName
'-Derivate
'-DerivateType
+-JOBBKDN
+-ListItem [ARRAY]
'-ConsignmentName
'-ConsignmentQuantity
'-ConsignmentWeight
'-ConsignmentVolume
'-SplitRef
'-CustomersInfotext
'-OwnersUpdated
'-OwnersPid
[...]
It is likely, that the Array 'ListItem' causes an error in the oailog.txt:
[...]
Fail to convert to internal representation:
oracle.sql.ARRAY@2af081) in the application stored procedure.
[...]
This error does not occure, when the Array 'ListItem' is removed.
Explanation
------
Even when there is no Array used within an Array, this probably has to do
with a limitation within the DB adapters having problems by using Arrays
within Arrays.
Workaround
-----------
To sucessfully use the Array 'ListItem', just place it underneath the very top
of it's parental element, here directly underneath Jobsplit:
[...]
JDT
+-JOB [ARRAY]
'-EnvType
'-OwnerDepot
+-Jobsplit
+-JOBBKDN
+-ListItem [ARRAY]
'-ConsignmentName
'-ConsignmentQuantity
'-ConsignmentWeight
'-ConsignmentVolume
'-SplitRef
+-Address
'-FirstName
'-LastName
'-Derivate
'-DerivateType
'-CustomersInfotext
'-OwnersUpdated
'-OwnersPid
[...]
To sucessfully work with this, you have to update your Business Object.
Pelo que andei pesquisando, este problema é com o Hibernate, pois quando faço uma consulta pelo SQL PLus…me retorna corretamente.
Ninguém faz idéia do seja este problema???
Oi, pode ser burrice minha, mas nunca vi essa sintaxe no Hibernate:
find("FROM APROVACAO_DETALHE in class ...
Tem certeza que um simples
find( "FROM com.ge.controlequalidade.dto.AprovacaoDetalhe ad WHERE ad.idTqd="+idTqd )
não resolve?
não conheço o hibernate,logo não posso falar sobre.
porem esse erro que ele retornou é do banco de dados(ORACLE que ele está usando) pode olhar no metalik.oracle.com ou tahiti.oracle.com
steveo, o lance é que, se o erro for realmente o apontado por mim, o Hibernate está montando a query de maneira errada.
Ricardo, pode postar o log do Hibernate?
lipe,se o hibernate está montando a sql errada não posso mais opinar.
Gostaria de ver log tambem
Pessoal,
O hibernate monta o sql corretamente, eu até o executei no sql plus. A solução para o meu problema foi substituir todos os campos Integer por String.
Eu li algo a respeito dizendo que o Hibernate tem um bug quando trata com muitos atributos Integer…mas sinceramente não entendi nada. Substitui e deu certo…Se alguém tiver uma explicação para isso seria bom para compartilharmos.