Loop na consulta!

2 respostas
E

Meus amigos,

Preciso de sua ajuda, gostaria de listar dois campos desta consulta usando Hibernate JPA mas ao invés disso o código lista apenas a primeira linha e fica em loop.

Onde estou errando?

SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        session.beginTransaction();

        String SQL_QUERY = "select count(bairroId) as qde, bairroId.dsbairro from PessoasEnderecoVO group by bairroId";
        
        //String SQL_QUERY = "select count(bairroId) as qde from PessoasEndereco in class br.com.padrao.vo.PessoasEnderecoVO group by bairroId";
        Query query = session.createQuery(SQL_QUERY);


        while(query.iterate().hasNext()){
        
            Object[] row = (Object[]) query.iterate().next();
            System.out.print("BAIRRO: " + row[0] + "\n");
            System.out.print("QUANTIDADE: " + row[1] + "\n");
            
            
        }
              
        session.getTransaction().commit();
        session.close();

2 Respostas

luksrn

Acredito que o problema seja porque quando você usa while(query.iterate().hasNext()), o trecho query.iterate() sempre retorna uma nova referência para o Iterator, deixando você sempre na primeira linha. Tenta o trecho de código abaixo

Query query = session.createQuery(SQL_QUERY);        
    Iterator iterator = query.iterate();  
    while( iterator.hasNext()){  
      
        Object[] row = (Object[]) iterator.next();  
        System.out.println("BAIRRO: " + row[0] );  
        System.out.println("QUANTIDADE: " + row[1] );                      
    }
E

Cara!
Perfeito! Obrigado mesmo!

Criado 3 de outubro de 2012
Ultima resposta 4 de out. de 2012
Respostas 2
Participantes 2