Buscador com Vraptor

Pessoal, to com um problema…
estou a horas tentando montar um mecanismo de busca de uma tabela em um banco de dados utilizando o Vraptor, mas não estou conseguindo. O máximo que eu consigo é que ele busque por apenas um dos campos, o que não resolçve meu problema, ja que eu gostaria que a busca fosse feita em todos os campos. Será que alguém poderia me ajudar.??

Sim…a galera pode ajudar. Qual a dificuldade no código? O que você tentou fazer e não conseguiu? Cole o código pra facilitar.

vc está com problemas na busca do vraptor ou do hibernate?

Bem, o porblmea é o seguinte… consigo fazer um código pra procurar por um parametro apenas, como por exemplo “nome”. Gostaria de poder fazer a busca por vários parametros da minha tabela, como por exemplo o telefone, o cargo, celular, entre outros… aí vai o código…

[code]package br.com.metha.buscaControleCorrespondencia.DAO;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;

import br.com.caelum.vraptor.ioc.Component;
import br.com.metha.buscaControleCorrespondencia.modelo.Contato;

@Component
public class ContatoDAO {

private final Session session;

public ContatoDAO(Session session){
	this.session = session;
}
public Contato procura(Integer id) {
	Contato contato =(Contato)session.load(Contato.class, 1L);
	return contato;
}
@SuppressWarnings("unchecked")
public List<Contato> listaTudo(){
	return this.session.createCriteria(Contato.class).list();
}
@SuppressWarnings("unchecked")
public List<Contato> busca(String nome) {
	
	return session.createCriteria(Contato.class).add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE)).list();
}

}
[/code]

[code]
package br.com.metha.buscaControleCorrespondencia.controller;

import static br.com.caelum.vraptor.view.Results.json;

import java.util.List;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.metha.buscaControleCorrespondencia.DAO.ContatoDAO;
import br.com.metha.buscaControleCorrespondencia.modelo.Contato;

@Resource
public class ContatosController {

private final ContatoDAO dao;
private final Result result;

public ContatosController(ContatoDAO dao, Result result) {
	this.dao = dao;
	this.result = result;
}

public List<Contato> lista() {

	return dao.listaTudo();
}
public List<Contato> busca(String nome){
	result.include("nome", nome);
	return dao.busca(nome);
}
@Get 
public void buscaJson(String q){
	result.use(json()).from(dao.busca(q)).serialize();
}

}[/code]

<form action="<c:url value="/contatos/busca"/>"><input id="busca" name="nome" /></form>
<script type="text/javascript">
	$("#busca").puts("Busca produtos por nome");

vc quer digitar uma coisa só e ele buscar em vários campos?
vc pode mudar sua busca pra:

 public List<Contato> busca(String nome) {  
           
         return session.createCriteria(Contato.class).add(
          Restrictions.or(
    Restrictions.ilike("nome", nome, MatchMode.ANYWHERE),
    Restrictions.ilike("descricao", nome, MatchMode.ANYWHERE)
)).list();  
     }  

ou algo parecido com isso…

pesquise sobre Restrictions.disjunction também…