Consulta no BD com Hibernate

3 respostas
P

Estou fazendo uma aplicação com hibernate, tenho uma classe DAO.java:

protected List listar(Class clazz)
    {
        List objects = null;
        s= HibernateUtility.getSession();
        t= s.beginTransaction();
        Query query = s.createQuery("from " + clazz.getName());
        objects = query.list();
        t.commit();
        s.close();
        return objects;
    }

quero fazer a consulta na tabela Pessoa, p/ por exemplo mostrar os dados da coluna nome, não sei como chamá-la… Alguém pode me ajudar???

3 Respostas

J

Você quer mostrar os dados selecionados por essa consulta?

Tipo isso?
DAO dao = new DAO();

List<Pessoa> pessoas = dao.listar(Pessoa.class);

for (Pessoa pes : pessoas){
   System.out.println(ps.getNome());
}

Vai dar erro no uso do generics, dê uma olhada aí pra adequar.

P

essa linha: List pessoas = dao.listar(Pessoa.class);
esta dando esse erro: Error(103,22): incompatible types; found: interface java.util.List, required: interface antlr.collections.List.
Não entendi o pessoas, seria conjunto??

P
Meus amigo! superado essa parte, pelo menos eu acho! como eu disse anteriormente , tenho:
protected List listar(Class clazz)
    {
        List objects = null;
        s= HibernateUtility.getSession();
        t= s.beginTransaction();
        Query query = s.createQuery("from " + clazz.getName());
        objects = query.list();
        t.commit();
        s.close();
        return objects;
    }
e
public void verEntidade(int id)
    {
       DAO dao = new DAO();
            
       List lista = dao.listar(Entidade.class);
           
       Iterator iterator = lista.iterator();
       System.out.println("******* ENTIDADES *******");
       while (iterator.hasNext()) 
       {
           Entidade loca = (Entidade) iterator.next(); 
           int vid = loca.getId();
           if (vid == id) 
           {
               System.out.println("id " + loca.getId());
               System.out.println("Nome: " + loca.getNomeE());
               System.out.println("Descrição: " + loca.getDescricaoE());               
               System.out.println("**********************************");
               
           }
       }        
    }

no evento clique do mouse, eu chamo:

verEntidade(1);

o que acontece, desse jeito eu vejo o primeiro registro sem problema algum, porém eu quero que ele faça uma varredura na tabela e me mostre todos os registros. Porém não estou conseguindo, ja tentei várias formas, tentei substituir o parâmetro "1" por uma variável, mas não deu certo... o que esta faltando.. alguém por favor pode me ajudar??

Criado 9 de novembro de 2006
Ultima resposta 10 de nov. de 2006
Respostas 3
Participantes 2