Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save leandrogilvalle/8078d8c76ad5fa86142b5aaea66da10b to your computer and use it in GitHub Desktop.

Select an option

Save leandrogilvalle/8078d8c76ad5fa86142b5aaea66da10b to your computer and use it in GitHub Desktop.
É muito comum nos projetos Java com o framework Hibernate utilizar a classe Criteria, então, o que é o Criteria?
O Criteria é uma classe utilizada para substituir o uso de querys (HQL) pelo uso de métodos, deixando assim o seu projeto ainda mais independente do banco de dados utilizado.
Quando começa o desenvolvimento dos métodos de busca com Criteria sempre é utilizado a classe Restrictions, hoje será explicado o que faz cada um dos métodos dessa classe.
 allEq(Map propertyNameValues) -Aplica “igual” para cada propriedade no conjunto de chaves do Mapa.
 and(Criterion... predicates) -Retorna o conjunto de múltiplas expressões.
 and(Criterion lhs, Criterion rhs) - Retorna o conjunto de duas expressões.
 between(String propertyName, Object lo, Object hi) - Aplica um “entre” no campo entre os dois parâmetros passados, é muito comum ser utilizado em campos data.
 conjunction() - Expressões agrupadas em um único conjunto.
 disjunction() - Expressões desagrupadas em um único conjunto.
 eq(String propertyName, Object value) -Aplica “igual” a propriedade chamada.
 eqOrIsNull(String propertyName, Object value) - Aplica “igual”ou “is null” a propriedade chamada.
 eqProperty(String propertyName, String otherPropertyName) - Aplica “igual” comparando as duas propriedades.
 ge(String propertyName, Object value) - Aplica “maior ou igual” a propriedade chamada.
 geProperty(String propertyName, String otherPropertyName) - Aplica “maior ou igual” comparando as duas propriedades.
 gt(String propertyName, Object value) - Aplica “maior que” a propriedade chamada.
 gtProperty(String propertyName, String otherPropertyName) - Aplica “maior que” comparando as duas propriedades.
 idEq(Object value) - Aplica “igual” a propriedade de ID.
 ilike(String propertyName, Object value) -Um case-insensitive “like”, comando similar a operação “ilike” do Postgres.
 ilike(String propertyName, String value, MatchMode matchMode) -Um case-insensitive “like”, comando similar a operação “ilike” do Postgres.
 in(String propertyName, Collection values) - Aplica “in” a propriedade chamada.
 in(String propertyName, Object[] values) -Aplica “in” a propriedade chamada.
 isEmpty(String propertyName) - Verifica se a propriedade chamada está vazia.
 isNotEmpty(String propertyName) -Verifica se a propriedade chamada não está vazia.
 isNotNull(String propertyName) - Aplica “is not null” a propriedade chamada.
 isNull(String propertyName) - Aplica “is null” a propriedade chamada.
 le(String propertyName, Object value) - Aplica “menor ou igual” a propriedade chamada.
 leProperty(String propertyName, String otherPropertyName) - Aplica “menor ou igual” comparando as duas propriedades.
 like(String propertyName, Object value) - Aplica “like” a propriedade chamada.
 like(String propertyName, String value, MatchMode matchMode) - Aplica “like” a propriedade chamada.
 lt(String propertyName, Object value) - Aplica “menor que” a propriedade chamada.
 ltProperty(String propertyName, String otherPropertyName) - Aplica “menor que” comparando as duas propriedades.
 naturalId() - Considera o uso de qualquer propriedade no ID, especialmente nos casos em que a restrição é o conjunto completo de ID.
 ne(String propertyName, Object value) - Aplica “não igual” a propriedade chamada.
 neOrIsNotNull(String propertyName, Object value) - Aplica “não igual” ou “is null” a propriedade chamada.
 neProperty(String propertyName, String otherPropertyName) - Aplica “não igual” comparando as duas propriedades.
 not(Criterion expression) - Retorna a negação da expressão.
 or(Criterion... predicates) - Retorna a disjunção de múltiplas expressões.
 or(Criterion lhs, Criterion rhs) - Retorna a disjunção de duas expressões.
 sizeEq(String propertyName, int size) - Restringe a propriedade chamada pelo tamanho.
 sizeGe(String propertyName, int size) - Restringe a propriedade chamada pelo tamanho.
 sizeGt(String propertyName, int size) - Restringe a propriedade chamada pelo tamanho.
 sizeLe(String propertyName, int size) - Restringe a propriedade chamada pelo tamanho.
 sizeLt(String propertyName, int size) - Restringe a propriedade chamada pelo tamanho.
 sizeNe(String propertyName, int size) - Restringe a propriedade chamada pelo tamanho.
 sqlRestriction(String sql) - Aplica um expressão em SQL.
 sqlRestriction(String sql, Object[] values, Type[] types) - Aplica uma expressão em SQL, com os parâmetros JDBC.
 sqlRestriction(String sql, Object value, Type type) - Aplica uma expressão em SQL, com os parâmetros JDBC.
@leandrogilvalle
Copy link
Author

// Obter o valor maximo do campo com retorno Integer
Criteria criteria = session.createCriteria(Person.class).setProjection(Projections.max("age"));
Integer maxAge = (Integer) criteria.uniqueResult();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment