Class JpaModelCriteriaBuilder<E,M,Self extends JpaModelCriteriaBuilder<E,M,Self>>

java.lang.Object
org.keycloak.models.map.storage.jpa.JpaModelCriteriaBuilder<E,M,Self>
Type Parameters:
E - Entity
M - Model
Self - specific implementation of this class
All Implemented Interfaces:
ModelCriteriaBuilder<M,Self>
Direct Known Subclasses:
JpaAdminEventModelCriteriaBuilder, JpaAuthEventModelCriteriaBuilder, JpaClientModelCriteriaBuilder, JpaClientScopeModelCriteriaBuilder, JpaGroupModelCriteriaBuilder, JpaLockModelCriteriaBuilder, JpaPermissionModelCriteriaBuilder, JpaPolicyModelCriteriaBuilder, JpaRealmModelCriteriaBuilder, JpaResourceModelCriteriaBuilder, JpaResourceServerModelCriteriaBuilder, JpaRoleModelCriteriaBuilder, JpaRootAuthenticationSessionModelCriteriaBuilder, JpaScopeModelCriteriaBuilder, JpaSingleUseObjectModelCriteriaBuilder, JpaUserLoginFailureModelCriteriaBuilder, JpaUserModelCriteriaBuilder, JpaUserSessionModelCriteriaBuilder

public abstract class JpaModelCriteriaBuilder<E,M,Self extends JpaModelCriteriaBuilder<E,M,Self>> extends Object implements ModelCriteriaBuilder<M,Self>
Abstract class containing methods common to all Jpa*ModelCriteriaBuilder implementations
  • Constructor Details

  • Method Details

    • validateValue

      protected void validateValue(Object[] value, SearchableModelField<? super M> field, ModelCriteriaBuilder.Operator op, Class<?>... expectedTypes)
    • convertToJson

      protected String convertToJson(Object input)
    • and

      @SafeVarargs public final Self and(Self... builders)
      Description copied from interface: ModelCriteriaBuilder
      Creates and returns a new instance of ModelCriteriaBuilder that combines the given builders with the Boolean AND operator.

      Predicate coming out of and on an empty array of builders (i.e. empty conjunction) is always true.

         cb = storage.getCriteriaBuilder();
         storage.read(cb.or(
           cb.and(cb.compare(FIELD1, EQ, 1), cb.compare(FIELD2, EQ, 2)),
           cb.and(cb.compare(FIELD1, EQ, 3), cb.compare(FIELD2, EQ, 4))
         );
       
      Specified by:
      and in interface ModelCriteriaBuilder<E,M>
    • or

      @SafeVarargs public final Self or(Self... builders)
      Description copied from interface: ModelCriteriaBuilder
      Creates and returns a new instance of ModelCriteriaBuilder that combines the given builders with the Boolean OR operator.

      Predicate coming out of or on an empty array of builders (i.e. empty disjunction) is always false.

         cb = storage.getCriteriaBuilder();
         storage.read(cb.or(
           cb.compare(FIELD1, EQ, 1).compare(FIELD2, EQ, 2),
           cb.compare(FIELD1, EQ, 3).compare(FIELD2, EQ, 4)
         );
       
      Specified by:
      or in interface ModelCriteriaBuilder<E,M>
    • not

      public Self not(Self builder)
      Description copied from interface: ModelCriteriaBuilder
      Creates and returns a new instance of ModelCriteriaBuilder that negates the given builder.

      Note that if the builder has no condition yet, there is nothing to negate: empty negation is always true.

      Specified by:
      not in interface ModelCriteriaBuilder<E,M>
      Returns:
    • getPredicateFunc

      public JpaPredicateFunction<E> getPredicateFunc()
    • isDistinct

      public boolean isDistinct()
    • getValuesForInOperator

      protected Collection<?> getValuesForInOperator(Object[] values, SearchableModelField<?> modelField)
    • getUuidsForInOperator

      protected Set<UUID> getUuidsForInOperator(Object[] values, SearchableModelField<?> modelField)
    • hashExpression

      protected jakarta.persistence.criteria.Predicate hashExpression(jakarta.persistence.criteria.CriteriaBuilder cb, jakarta.persistence.criteria.Join<E,?> join, String columnName, Object value)