Class TimeValueProvider
java.lang.Object
org.cxbox.core.util.filter.provider.impl.AbstractClassifyDataProvider
org.cxbox.core.util.filter.provider.impl.TimeValueProvider
- All Implemented Interfaces:
ClassifyDataProvider
@Component
public class TimeValueProvider
extends AbstractClassifyDataProvider
implements ClassifyDataProvider
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionjakarta.persistence.criteria.PredicategetFilterPredicate(@NonNull SearchOperation operator, @NonNull jakarta.persistence.criteria.Root<?> root, @NonNull jakarta.persistence.criteria.CriteriaBuilder cb, @NonNull ClassifyDataParameter criteria, @NonNull jakarta.persistence.criteria.Path field, @NonNull Object value, @NonNull DialectName dialect) protected List<ClassifyDataParameter>getProviderParameterValues(Field dtoField, ClassifyDataParameter dataParameter, FilterParameter filterParam, SearchParameter searchParam, List<ClassifyDataProvider> providers) jakarta.persistence.criteria.Expression<?>getSortExpression(@NonNull SearchParameter searchParameter, @NonNull jakarta.persistence.criteria.CriteriaBuilder builder, @NonNull jakarta.persistence.criteria.CriteriaQuery query, @NonNull jakarta.persistence.criteria.Root<?> root, @NonNull Class dtoClazz, @NonNull jakarta.persistence.criteria.Path fieldPath, @NonNull DialectName dialect) Sorts entity column by time fraction (LocalDateTime and LocalTime)
dialect (Oracle/PostgreSQL)- entityManager.getEntityManagerFactory().getProperties().get("hibernate.dialect").toString();Methods inherited from class org.cxbox.core.util.filter.provider.impl.AbstractClassifyDataProvider
getClassifyDataParameters, setClassifyDateParameterDateValueMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.cxbox.core.util.filter.provider.ClassifyDataProvider
getClassifyDataParameters
-
Constructor Details
-
TimeValueProvider
public TimeValueProvider()
-
-
Method Details
-
getProviderParameterValues
protected List<ClassifyDataParameter> getProviderParameterValues(Field dtoField, ClassifyDataParameter dataParameter, FilterParameter filterParam, SearchParameter searchParam, List<ClassifyDataProvider> providers) - Specified by:
getProviderParameterValuesin classAbstractClassifyDataProvider
-
getSortExpression
public jakarta.persistence.criteria.Expression<?> getSortExpression(@NonNull @NonNull SearchParameter searchParameter, @NonNull @NonNull jakarta.persistence.criteria.CriteriaBuilder builder, @NonNull @NonNull jakarta.persistence.criteria.CriteriaQuery query, @NonNull @NonNull jakarta.persistence.criteria.Root<?> root, @NonNull @NonNull Class dtoClazz, @NonNull @NonNull jakarta.persistence.criteria.Path fieldPath, @NonNull @NonNull DialectName dialect) Sorts entity column by time fraction (LocalDateTime and LocalTime)
dialect (Oracle/PostgreSQL)- entityManager.getEntityManagerFactory().getProperties().get("hibernate.dialect").toString();
dialect = PostgreSQL
Column in DB: TIMESTAMP/TIME
Actual SQL:
Query:["select a1_0.id,a1_0.commend,a1_0.created_date from apple a1_0 order by cast(a1_0.created_date as time) asc"]so always add functional index CREATE INDEX idx_apple ON my_entity (cast(field as time(6)));
dialect = Oracle
Column in DB: TIMESTAMP
Actual SQL:Query:["select a1_0.id,a1_0.commend,a1_0.created_date from apple a1_0 order by to_char(a1_0.created_date,'HH24:MI:SS') asc"]- Specified by:
getSortExpressionin interfaceClassifyDataProvider
-
getFilterPredicate
public jakarta.persistence.criteria.Predicate getFilterPredicate(@NonNull @NonNull SearchOperation operator, @NonNull @NonNull jakarta.persistence.criteria.Root<?> root, @NonNull @NonNull jakarta.persistence.criteria.CriteriaBuilder cb, @NonNull @NonNull ClassifyDataParameter criteria, @NonNull @NonNull jakarta.persistence.criteria.Path field, @NonNull @NonNull Object value, @NonNull @NonNull DialectName dialect) - Specified by:
getFilterPredicatein interfaceClassifyDataProvider
-