Hibernate Consulta com Criteria ou com Query atraves de parametros

1 resposta
M

tem alguma forma de efetuar uma consulta no hibernate com criteria ou com Query atraves da passagem de parametros?

tipo

public ClasseA consulta(ClasseA, Parametros) {
//efetua o select from ClasseA, where parametros;
}

ou algo parecido, estou tentando fazer como se fosse uma busca generica de qualquer classe.

1 Resposta

A

porque voce nao usa HQL?
é uma linguem muito parecida com o sql,
porem ela trata o os elementos das classe e nao os atribultos das tabelas,

veja um exemplo do que voce precisa em HQL
para salva um objeto da categoriaSocio

public class DaoCategoriaSocio implements CategoriaSocioInterface {
 
    //testado
    @Override
    public void AdicionarCategoria(Categoriasocio categoria) {
        
        Session sessao = null;
        Transaction transacao = null;
       
         try{
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            sessao.save(categoria); 
            transacao.commit();
            System.out.println("Salvo com sucesso");  
        }
        catch(HibernateException e)
        {
            System.out.println("Erro ao iniciar a sessao para persistencia " + e);
            transacao.rollback();
        }
        finally
        {
            sessao.close(); 
        }    
    }

para buscar um elemento da categoriaSocio por nome

@Override
    public Categoriasocio BuscarCategoriaPorNome(String nome) {
        
        Categoriasocio categoriaSocio = null;
        Session sessao = null; 
        Query query = null;
        Transaction transacao = null;
        
        try{

           sessao = HibernateUtil.getSessionFactory().openSession();
           transacao = sessao.beginTransaction();
           query = sessao.createQuery("from Categoriasocio where nome = :nome");
           query.setParameter("nome", nome);
           categoriaSocio = (Categoriasocio) query.uniqueResult();
           transacao.commit(); 
           
        }
        catch(HibernateException e)
        {
            System.out.println(e);
            transacao.rollback();
        }
        finally
        {
             sessao.close();
        }  
    return categoriaSocio;
    }

esse codigo é de uma dao da minha autoria, se alguem poder ajudar a melhorar alguma coisa, eu agradeco,
sou novato tambem =)

Criado 27 de abril de 2013
Ultima resposta 28 de abr. de 2013
Respostas 1
Participantes 2