RESOLVIDO! Consulta com Hibernate

3 respostas
diogoprosoft

Galera nao estou conseguindo fazer uma consulta com o hibernate

Meu codigo esta assim

Persistencia

public Object buscar(Class clazz,Integer pk) throws Exception  {             
        Session session = HibernateFactory.getSession();
        Transaction transaction = session.beginTransaction();    
        try {          
          Serializable obj = (Serializable) session.get(clazz, pk );  
          session.flush();  
          transaction.commit();  
          return  obj;  
     } finally {  
          session.close();  
     }
   }

Estou usando o Vraptor meu Logic esta assim

@Logic(parameters={"clientes"})
    public void buscar(Clientes clientes) throws Exception {

        PersistenciaDAO persistencia = new PersistenciaDAO();
        
        persistencia.buscar(Clientes.class, clientes.getCodigo());
		        
        this.clientes = clientes;
        
    }

Meu Jsp esta assim

form class="niceform" method="post" name="frmClientes">
<input type="text" id="clientes.codigo" name="clientes.codigo" size="6"  value="${clientes.codigo}"/>
<input type="text" id="clientes.nomeCliente" name="clientes.nomeCliente" size="30" value="${clientes.nomeCliente}"/>

O que estou fazendo de errado?

Outra pergunta seria so consigo consultar o pk ou tem outra maneira de pesquisar pelo nome do cliente tbm?

3 Respostas

Felagund

pesquise sobre o HQL que é a linguagem de consultas do hibernate baseada no SQL, com ela vocÊ faz diversas sentenças SQL.

@Logic(parameters={"clientes"})
    public void buscar(Clientes clientes) throws Exception {

        PersistenciaDAO persistencia = new PersistenciaDAO();
        
        persistencia.buscar(Clientes.class, clientes.getCodigo());
		        
        this.clientes = clientes;
        
    }

Não seria melhor fazer assim:

@Logic(parameters={"clientes"})
    public void buscar(Clientes clientes) throws Exception {

        PersistenciaDAO persistencia = new PersistenciaDAO();
        
        this.clientes = (Clientes) persistencia.buscar(Clientes.class, clientes.getCodigo());
        
    }

Lembrando que sua classe Clientes tem que implementar Serializable.

Nunca usei o VRaptor, mas acredtio que assim vc consegue começar.

att

diogoprosoft

Eu estava fazendo como vc falou, so fiz uma mudanca e postei ela, hehe
Cara com o Struts eu fazia da mesma maneira e funcionava, nao sei pq nao esta fazendo a consulta

diogoprosoft

Blz consegui meu Logic ficou assim:

@Logic(parameters={"clientes"})   
    public void buscar(Clientes clientes) throws Exception {   
  
        PersistenciaDAO persistencia = new PersistenciaDAO();   
           
        Clientes c = (Clientes) persistencia.buscar(Clientes.class, clientes.getCodigo());   
                   
        this.clientes = c;   
           
    }
Criado 15 de dezembro de 2008
Ultima resposta 16 de dez. de 2008
Respostas 3
Participantes 2