Problema com Select que não retorna todos os caracteres da consulta
17 respostas
dymitrios
Boa tarde a todos!
Fiz uma consulta para retornar o valor tipoConsulta, onde tem gravado a String “15”, mas no resultado da consulta no NetBeans somente aparece “1”.
Quando faço a mesma consulta no Workbench vem certo o “15”.
Por favor alguém sabe o que está acontecendo???
Código da consulta:
publicStringpegaTipoConsulta(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Listretorno=session.createSQLQuery("SELECT MAX(consultas.TipoConsulta) as TipoConsulta FROM Consultas,resultado_consultas where Consultas.Codigo=resultado_consultas.CodigoResu").list();Objecti=retorno.get(0);Stringtipo=i.toString();System.out.println("Impresso a lista="+retorno);// está imprimindo o valor "1" ao invés de "15" que está gravado na tabelareturntipo;}
Lembre-se que o count retorna um Objeto do tipo Long
dymitrios
Coloquei dessa forma mas continua aparecendo somente "1". só o 1º caractere
publicStringpegaTipoConsulta(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Objectretorno=session.createSQLQuery("SELECT MAX(consultas.TipoConsulta) as TipoConsulta FROM Consultas,resultado_consultas where Consultas.Codigo=resultado_consultas.CodigoResu").uniqueResult();//Object i=retorno.get(0);Stringtipo=retorno.toString();System.out.println("Impresso a lista="+retorno);returntipo;}
lelodois
[quote=dymitrios]Fiz isso e apareceu esse erro
Long retorno = (Long) session.createSQLQuery("SELECT ").uniqueResult();
Lembre-se que o count retorna um Objeto do tipo Long
dymitrios
Da forma como vc falou também dá erro:
Exception in thread "Thread-0" java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.Long
Ae fiz dessa forma:
Mas ainda só retorna o "1".
publicStringpegaTipoConsulta(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Objectretorno=session.createSQLQuery("SELECT MAX(consultas.TipoConsulta) as TipoConsulta FROM Consultas,resultado_consultas where Consultas.Codigo=resultado_consultas.CodigoResu").uniqueResult();//Object i=retorno.get(0);Stringtipo=retorno.toString();System.out.println("Impresso a lista="+retorno);returntipo;}
lelodois
dymitrios:
Da forma como vc falou também dá erro:
Exception in thread "Thread-0" java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.Long
Ae fiz dessa forma:
Mas ainda só retorna o "1".
publicStringpegaTipoConsulta(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Objectretorno=session.createSQLQuery("SELECT MAX(consultas.TipoConsulta) as TipoConsulta FROM Consultas,resultado_consultas where Consultas.Codigo=resultado_consultas.CodigoResu").uniqueResult();//Object i=retorno.get(0);Stringtipo=retorno.toString();System.out.println("Impresso a lista="+retorno);returntipo;}
Um....
Estranho, ele não deveria trazer um tipo character.
Você não pode fazer o max por um id?
MAX(consultas.id)
Confesso que nunca vi fazer max por varchar.
:)
dymitrios
rsss eu quero pegar o ultimo resultado do tipoconsulta.
Mas mesmo assim eu tentei sem o MAX no começo e continuou da mesma forma.
o engraçado é que no Workbench vem certinho do jeito que eu quero…
lelodois
dymitrios:
rsss eu quero pegar o ultimo resultado do tipoconsulta.
Mas mesmo assim eu tentei sem o MAX no começo e continuou da mesma forma.
o engraçado é que no Workbench vem certinho do jeito que eu quero…
Fiz assim. gostei. mas ainda assim o resultado é “1”.
Já pesquizei de tudo quanto é jeito… não entendo porque está trazendo somente o caractere 1!
lelodois
dymitrios:
Fiz assim. gostei. mas ainda assim o resultado é “1”.
Já pesquizei de tudo quanto é jeito… não entendo porque está trazendo somente o caractere 1!
Estranho…
Não sei oq pode ser, qual é o seu ambiente (o que dá certo e o que dá errado).
dymitrios
Perdão não entendi a pergunta… :shock:
lelodois
lelodois:
dymitrios:
Fiz assim. gostei. mas ainda assim o resultado é “1”.
Já pesquizei de tudo quanto é jeito… não entendo porque está trazendo somente o caractere 1!
Estranho…
Não sei oq pode ser, qual é o seu ambiente (o que dá certo e o que dá errado).
O que vc está usando?
Framework, ide, banco, camiseta…
dymitrios
kkkkkkkkk
Então estou usando o NetBeans 5.9 e trabalhando somente nele junto com Hibernate.
Tenho outra consulta onde eu tinha que pegar o ID e pegou normalmente. somente essa consulta que ta dificil.
dymitrios
Olha o que eu preciso fazer.
Eu insiro os dados na tabela Consultas:
ID gera automatico
TipoConsultas eu insiro
Preciso pegar esses dados inseridos na tabela Consultas e colocar na tabela resultado_consultas.
E essas duas tabelas não tem relacionamento algum.
Ae tenho uma DAO que inseri a tabela Consultas. e outra DAO que faz a inserção do ID gerado na Consultas e TipoConsultas.
Se souber alguma outra forma mais fácil de fazer isso agradeço.
Pois o ID já pego corretamente e coloco na resultado_consultas.
Mas o TipoConsultas está ocorrendo isso. ao invés de pegar "15" está pegando "1".
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagecredserver.DAOS;importhibernate.CredTudoHibernateUtil;importhibernate.ResultadoConsultas;importjava.awt.Event;importjava.util.List;importorg.hibernate.Session;/** * * @author Stwart */publicclassDAOresultadoConsultas{privateSessionsession;privateintid1;publicvoidsalvar(ResultadoConsultasresultadoconsultas)throwsException{session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();/* Transaction transaction = (Transaction) session.beginTransaction();*/session.beginTransaction();session.save(resultadoconsultas);session.getTransaction().commit();// session.flush();// session.close();}publicListlistar(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Listl1=session.createQuery("from ResultadoConsultas").list();session.getTransaction().commit();returnl1;}publicintpegaid(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Listretorno=session.createSQLQuery("SELECT MAX(Codigo) AS Codigo FROM Consultas ").list();session.getTransaction().commit();Objecti=retorno.get(0);Stringid=i.toString();id1=Integer.parseInt(id);//session.close();//System.out.println("ID="+id);returnid1;}publicStringpegaTipoConsulta(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Objectretorno=session.createSQLQuery("SELECT consultas.TipoConsulta as TipoConsulta FROM Consultas,resultado_consultas where Consultas.Codigo=resultado_consultas.CodigoResu").setFirstResult(1).setMaxResults(1).uniqueResult();//Object i=retorno.get(0);Stringtipo=retorno.toString();System.out.println("Impresso a lista="+retorno);returntipo;}}
dymitrios
Alguém sabe porque isso está acontecendo???
dymitrios
Alguém?
lelodois
Nossa velhinho…
estou com o mesmo problema, o hibernate transformes está convertendo uma string “palavra” em character ‘p’…
como vc resolveu?