consulta com clausula left join - Erro The value supplied cannot be converted to BIGINT

24/11/2011

0

Bom Dia!

Estou com um problema no retorno de consulta com clausula left join. Quando há referencia para a TABELA2 a consulta retorna normalmente porém quando não tem referencia apresenta o erro abaixo.

O mapeamento está da seginte forma:

@Entity
@NamedQueries(value = {
		@NamedQuery(name = nome, 
				query = select p from TABELA p left outer join fetch p.tabela2 where p.CONDICAO = ?1 order by p.CAMPO_QQ)

@ManyToOne(optional = true)
@JoinColumn(nullable=true, name = COLUNA, referencedColumnName = COLUNA)
private TABELA2 tabela2;


Erro:
javax.persistence.PersistenceException: org.hibernate.exception.DataException: could not execute query
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1215)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1148)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255)
at br.gov.ba.detran.generic.dao.GenericDao.getAllFind(GenericDao.java:96)
at br.gov.ba.detran.generic.test.TestDao.main(TestDao.java:31)
Caused by: org.hibernate.exception.DataException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2536)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
at org.hibernate.loader.Loader.list(Loader.java:2271)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246)
... 2 more
Caused by: java.sql.SQLException: The value supplied cannot be converted to BIGINT.
at net.sourceforge.jtds.jdbc.Support.convert(Support.java:653)
at net.sourceforge.jtds.jdbc.JtdsResultSet.getLong(JtdsResultSet.java:645)
at net.sourceforge.jtds.jdbc.JtdsResultSet.getLong(JtdsResultSet.java:972)
at org.hibernate.type.descriptor.sql.BigIntTypeDescriptor$2.doExtract(BigIntTypeDescriptor.java:61)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:229)
at org.hibernate.type.ManyToOneType.hydrate(ManyToOneType.java:146)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2283)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455)
at org.hibernate.loader.Loader.getRow(Loader.java:1355)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
at org.hibernate.loader.Loader.doQuery(Loader.java:829)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.doList(Loader.java:2533)
... 10 more
Maiara Brito

Maiara Brito

Responder

Posts

24/11/2011

Davi Costa

Será que o problema não é ampo que vc coloca na cláusura where.
É um bigint?
Ou é um objeto complexo... e como vc está passando? Dá uma olhada nisso.

Att Davi
Responder

24/11/2011

Maiara Brito

O campo da clausula where é um String.
Responder

24/11/2011

Davi Costa

Pois faz o seguinte posta o modelo das duas classes que vai ficar melhor da comunidade te ajudar.
E diz o que vc precisa obter com esse select.

att Davi
Responder

06/12/2011

Dyego Carmo

Resolvido ?


Se sim , poderia fechar o chamado ?

Valeu !
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar