Galera, mais uma dúvida pra voces…
Seguinte… para fazer buscas no banco usando Hibernate, crio um objeto Criteria e nele vou adicionando restrições baseados nos valores existentes no Bean que eu estou pesquisando… exemplo:
public List<Permissao> summary(Permissao permissao) {
session = HibernateUtil.getSession();
List<Permissao> list = null;
try {
Criteria criteria = session.createCriteria(Permissao.class);
addCriteria(criteria, permissao);
criteria.addOrder(Order.asc("numeroOrdem"));
list = criteria.list();
} catch (HibernateException e) {
e.printStackTrace();
}
return list;
}
public void addCriteria(Criteria criteria, Permissao permissao) {
if(!Util.isEmpty(permissao.getDataCadastro()))
criteria.add(Restrictions.eq("dataCadastro", permissao.getDataCadastro()));
if(!Util.isEmpty(permissao.getDescricao()))
criteria.add(Restrictions.eq("descricao", permissao.getDescricao()));
if(!Util.isEmpty(permissao.getId()))
criteria.add(Restrictions.eq("id", permissao.getId()));
if(!Util.isEmpty(permissao.getNumeroOrdem()))
criteria.add(Restrictions.eq("numeroOrdem", permissao.getNumeroOrdem()));
}
Como deu pra perceber ai, estou fazendo manualmente a inserção de cada Restriction caso o atributo esteja preenchido (meu método Util.isEmtpy verifica se o atributo está preenchido)… óbviamente isso fica inviável para Bean’s que tenham muitos atributos, seria um trabalho braçal absurdo pra fazer isso…
Minhas alternativas:
[list]1 - Usar Reflection pra pegar atributo por atributo, verificar seu tipo, nome, e adicionar o Restriction na Criteria;[/list]
[list]2 - Rezar pro Hibernate já fazer algo parecido com isso !! :mrgreen: [/list]
Então, alguém sabe se o Hibernate tem essa funcionalidade ? :?

