Duvidas Hibernate

E ae galera, estou com uma duvida basica do hibernate

eu tenho uma action do struts 2 que chama uma Dao onde eu já consiguo inserir remover e alterar e lista tudo
mas estou com dificuldades na hora de fazer uma busca
no caso eu estou usando o findAll para pegar todos os resultados da tabela

public List findAll() throws Exception {
return HibernateUtil.currentSession().createCriteria(Marca.class).list();
}

até ai blz funciona ai eu criei ouro método para busca com o seguinte codigo

public List findByMarca(Marca entity) throws Exception
{
return HibernateUtil.currentSession().createCriteria(entity.getClass()).list();
}

ou seja eu passo por parametro o objeto e faco o mesmo método mas nao dá certo… eu será que eu teria que mudar usar um Query? alguem da uma luz?! valeu

public List<Marca> findByMarca(Marca entity) throws Exception 
{ 
return HibernateUtil.currentSession().createCriteria(entity.getClass()).list(); 
} 

Esse método faz a mesma coisa que o primeiro… não é essa a intenção?

Obrigado pela resposta :smiley:
Pois é, mas o primeiro retorna apenas um objeto pelo id do parametro, eu tava precisando passar um objeto Marca e retornar uma Lista que tenha a letra F, ou seja uma busca parametrizada onde cada campo que nao seja null seja verificado na query… e dakela maneira que está ali não funcionou :confused: ele retorna todos os registros da tabela
acredito que tenha que utilizar alguma outra função eu não sei direito por exemplo a Query do hibernate ou é feito de outra maneira

Ali voce só passa o Class do objeto marca assim como no primeiro método (findAll).

Se voce quiser usar um objeto como exemplo voce tem que pesquisar sobre o Example do Hibernate… eu nunca usei essa função mas acho que pode resolver seu problema.

E ae pessoal ainda nao consegui resolver meu problema no DAO!!

tentei utilizar o example

fiz assim

@SuppressWarnings("unchecked")
	public List<Marca> findMarcas( Marca entity) throws Exception {
                //aqui ta imprimindo certo a descricao por exemplo Ford
		System.out.println(entity.getDescricao());
               //aqui uso o example passando a marca que esta na action do struts 2.. 
		Example example = Example.create(entity).excludeZeroes().ignoreCase().enableLike();  
               // aqui o resultado da sessao passando adicionando o example no Criteria do hibernate
		List<Marca> results =  HibernateUtil.currentSession().createCriteria(Marca.class).add(example).list();
		
		return  results;
	}

ele nao da erro mas a HQL fica da seguinte forma

// o 2 é o parametro que vem do form do struts
2
//essa eh a hql pode ver que ela simplesmente faz Where 1=1 ou seja ele ignora o example e nao compara minha descricao, e traz toda minha tabela marca
Hibernate: 
    select
        this_.id_marca as id1_4_0_,
        this_.descricao as descricao4_0_ 
    from
        marca this_ 
    where
        (
            1=1
        )

alguma solução??