Implementando PropertySelector para utilizar como Example no Hibernate

A algum tempo atrás alguém perguntou no GUJ se o Hibernate fazia consultas (utilizando Criteria) excluindo propriedades vazias ( “” ).

Nativamente o Hibernate não dispoem desses recurso, porem utilizando Example podemos implementar PropertySelector para faze-lo exatamente como implementação do Example.excludeZeroes()

Exemplo de PropertySelector

1
2
3
4
5
6
7
public final class NotNullOrBlankPropertySelector implements PropertySelector {
    public boolean include(Object object, String propertyName, Type type) {
        return object!=null && (
            !(object instanceof String) || !( (String) object ).equals("")
        );
    }
}

Como utilizar

1
2
3
4
HibernateUtil.getSession()
 .createCriteria(SuaEntidade.class)
 .add( Example.create(suaInstancia).setPropertySelector(new NotNullOrBlankPropertySelector()) )
 .list();

Nenhum comentário

Deixe Seu Comentário