Dúvida com Hibernate

2 respostas
D

Eu to usando uma pesquisa pela ID a pessoa no Banco de Dados com o Hibernate, o código é esse:

public Pessoa procuraID(long id){
    	Pessoa pessoa = (Pessoa) this.session.load(Pessoa.class, id);
    	
    	return pessoa;
    }

Caso eu queira procurar pelo nome ou número de telefone da pessoa, não sei como eu faço, se eu alterar a ID ele dá exceção.

2 Respostas

oddy.silva

Cara, você pode criar uma Query. Se você criou o seu hibernateUtil, você vai fazer assim:

exemplo:

String strQuey = "select c from Cliente c where c.nome = :nome";
  Query query = HibernateUtil.getSession().createQuery(strQuery);
  query.setParameter("nome", "João");
  query.getSingleResult();

Basicamente isso.

oddy.silva

Você pode pegar tanto um resultado simples como uma lista.

exemplo de um resultado simples:

public Cliente findClienteByName(String nomeDoCliente){

String strQuey = "select c from Cliente c where c.nome = :nome";  
Query query = HibernateUtil.getSession().createQuery(strQuery);  
query.setParameter("nome", nomeDoCliente);  
Cliente c = (Cliente) query.getSingleResult();  
return c;

}

exemplo de uma busca que retorna uma lista:

..... findClientsById(Long idInicial, Long idFinal)`{
String strQuery = "select c from Cliente c where c.id between :inicio and :fim";
Query query = HibernateUtil.getSession().createQuery(strQuery);  
query.setParameter("inicio", idInicial);
query.setParameter("fim", idFinal);

//pegando a lista
query.getResultList();

}

Se eu não me engano você vai ter que fazer cast pra Query, lá no getSession(). E pelo que me lembro não vai rolar try catch.

Criado 11 de novembro de 2009
Ultima resposta 11 de nov. de 2009
Respostas 2
Participantes 2