Busca em várias colunas com hibernate

Pessoal,

Estou utilizando pela primeira vez hibernate, estou com a seguinte dúvida: como posso implementar um método de busca cujo parâmetro recebido seja comparado a todas as colunas da minha tabela?
Tenho uma tabela Ponteira, com as seguintes colunas: codigo, nome, descricao, marca e modelo. Preciso implementar um método que receba uma string e me retorne um objeto que possua um código, nome, descrição, marca ou modelo igual a string recebida.

Kra acho q vc tera q fazer um HQL para essa consulta.

Use Criteria para fazer essa pesquisa, se vc quiser uma pesquisa restringindo pelo código e comparando o parametro enviado com as suas colunas em qualquer lugar da String, ficaria assim:

public List<Ponteira> busca(Ponteira ponteira) {	
		
		Criteria crit = session.createCriteria(Ponteira.class);
		Restrictions.eq("codigo", ponteira.getCodigo());
		Restrictions.ilike("nome", ponteira.getNome(), MatchMode.ANYWHERE);
		Restrictions.ilike("descricao", ponteira.getDescricao, MatchMode.ANYWHERE);
		Restrictions.ilike("marca", ponteira.getMarca, MatchMode.ANYWHERE);
		Restrictions.ilike("modelo", ponteira.getModelo, MatchMode.ANYWHERE);
		Conjunction conjunction = Restrictions.conjunction();
		crit.add(conjunction);
		List results = crit.list();
		return results;
	}	

Essa pesquisa é “que seja tal código, que o nome esteja em qualquer lugar da String e qualquer lugar da descrição e qualquer lugar para a marca e qualquer lugar para modelo”. Mas se vc quiser usar “ou”, use disjunction no lugar do conjunction, ai será “que seja tal código, que o nome esteja em qualquer lugar da String ou qualquer lugar da descrição ou qualquer lugar para a marca ou qualquer lugar para modelo”.
Se não quiser passar os parâmetros usando os atributos do objeto, mas uma String apenas, ficaria assim:

public List<Ponteira> busca(Long codigo, String parametro) {	
		
		Criteria crit = session.createCriteria(Ponteira.class);
		Restrictions.eq("codigo", codigo);
		Restrictions.ilike("nome", parametro, MatchMode.ANYWHERE);
		Restrictions.ilike("descricao", parametro, MatchMode.ANYWHERE);
		Restrictions.ilike("marca", parametro, MatchMode.ANYWHERE);
		Restrictions.ilike("modelo", parametro, MatchMode.ANYWHERE);
		Conjunction conjunction = Restrictions.conjunction();
		crit.add(conjunction);
		List results = crit.list();
		return results;
	}	

Além do ANYWHERE vc possui o EXACT, END e START, ou seja, o parâmetro enviado em qualquer lugar da String, exatamente igual, no final e no começo.
[]s