Quando efetuo a consulta abaixo deveria pegar a string 35, mas sempre vem 3. se eu mudo o valor da string no banco sempre vem somente o 1º caractere.
Alguém sabe como fazer para pegar o resultado completo.
publicStringpegaTipoConsulta(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Listretorno=session.createSQLQuery("Select consultas.TipoConsulta as TipoConsulta from Consultas where Consultas.Codigo = :id").setInteger("id",id1).list();// Object retorno = session.createSQLQuery("SELECT consultas.TipoConsulta as TipoConsulta FROM Consultas,resultado_consultas where Consultas.Codigo=resultado_consultas.CodigoResu").setFirstResult(1).setMaxResults(1).uniqueResult();Objecti=retorno.get(0);Stringtipo=i.toString();System.out.println("Impresso a lista="+retorno);returntipo;}
Dai vc trabalha com os objetos da classe Consulta e não com colunas da tabela.
dymitrios
Vou tentar dessa forma que você postou…
romarcio
Faz o for somente no resultado, não na consulta:
for(inti=0; i < retorno.size(); i++){ retorno.get(i);
dymitrios
Exception in thread “Thread-0” org.hibernate.QueryParameterException: could not locate named parameter [codigo]
O erro que aparece. Já tentei colocar Consultas.codigo e nada…
dymitrios
publicStringpegaTipoConsulta(){session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Queryretorno=session.createQuery("from Consultas where Codigo = :id").setInteger("id",id1);List<Consultas>consultas=retorno.list();for(Consultasc:consultas){c.getTipoConsulta();}// List retorno = session.createSQLQuery("Select consultas.TipoConsulta as TipoConsulta from Consultas where Consultas.Codigo = :id").setInteger("id", id1).list();// Object retorno = 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);//String tipo = i.toString();System.out.println("Impresso a lista="+retorno);returnretorno.toString();}
Fiz dessa forma mas só trás a própria consulta =
Impresso a lista=QueryImpl(from Consultas where Codigo = :id)
dymitrios
Valeu Romarcio... mais uma que você me ajuda...
Aqui se resolveu certinho...
publicStringpegaTipoConsulta(){
session=CredTudoHibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Queryretorno=session.createQuery("from Consultas where Codigo = :id").setInteger("id",id1);List<Consultas>consultas=retorno.list();for(Consultasc:consultas){
tipo=c.getTipoConsulta();}
System.out.println("Impresso a lista="+tipo);returntipo.toString();}