Hibernate Consulta com Criteria ou com Query atraves de parametros

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.

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 =)