Opa 
Tenho uma tela de busca que tem N parametros de Busca e queria saber se existe alguma maneira automatiza de fazer isso ao invés de eu ter que verificar o que o usuário digitou e criar uma criteria pra aquilo.
[]'s
Opa 
Tenho uma tela de busca que tem N parametros de Busca e queria saber se existe alguma maneira automatiza de fazer isso ao invés de eu ter que verificar o que o usuário digitou e criar uma criteria pra aquilo.
[]'s
Usa a classe Example do hibernate. Tu cria um objeto de exemplo com os campos que tu quer e passa pro hibernate e ele faz a pesquisa, bem facil de usar.
Criteria criteria = session.createCriteria(CargaBean.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
Example example = Example.create(carga);
example.excludeZeroes();
criteria.add(example);
Não funcionou…só funciona se eu deixar assim:
Criteria criteria = session.createCriteria(CargaBean.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
if(carga.getProduto() != null && !carga.getProduto().equals("")){
criteria.add(Expression.eq("produto", carga.getProduto()));
}
if(carga.getPesoCarga() != null){
criteria.add(Expression.eq("pesoCarga", carga.getPesoCarga()));
}
if(carga.getEstadoOrigem() != null && carga.getEstadoOrigem() != Estado.NAODEFINIDO){
criteria.add(Expression.eq("estadoOrigem", carga.getEstadoOrigem()));
}
if(carga.getCidadeOrigem() != null && !carga.getCidadeOrigem().equals("")){
criteria.add(Expression.eq("cidadeOrigem", carga.getCidadeOrigem()));
}
if(carga.getEstadoDestino() != null && carga.getEstadoDestino() != Estado.NAODEFINIDO){
criteria.add(Expression.eq("estadoDestino", carga.getEstadoDestino()));
}
if(carga.getCidadeDestino() != null && !carga.getCidadeDestino().equals("")){
criteria.add(Expression.eq("cidadeDestino", carga.getCidadeDestino()));
}
if(carga.getValorFrete() != null){
criteria.add(Expression.eq("valorFrete", carga.getValorFrete()));
}
if(carga.getCondicaoPagamento() != null && !carga.getCondicaoPagamento().equals("")){
criteria.add(Expression.eq("condicaoPagamento", carga.getCondicaoPagamento()));
}
Alguem sabe o que estou fazendo de errado?
[]'s