Class AbstractPagingSortingFilteringRepositoryImpl
java.lang.Object
de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingSortingFilteringRepositoryImpl
- Direct Known Subclasses:
JdbiRepositoryImpl
Convenience repository implementation to be inherited from if applicable.
Tries best to translate paging and sorting params into valid SQL.
If result does not fit your use case: implement it yourself and do not use these convenience
methods.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddOrderBy(de.digitalcollections.model.list.paging.PageRequest pageRequest, StringBuilder sqlQuery) voidaddPagingAndSorting(de.digitalcollections.model.list.paging.PageRequest pageRequest, StringBuilder sqlQuery) abstract StringgetColumnName(String modelProperty) getOrderBy(de.digitalcollections.model.list.sorting.Sorting sorting) protected abstract Stringprotected abstract booleansupportsCaseSensitivityForProperty(String modelProperty) Returns whether the passed property can be sorted case sensitive (in general).
-
Field Details
-
offsetForAlternativePaging
protected int offsetForAlternativePaging
-
-
Constructor Details
-
AbstractPagingSortingFilteringRepositoryImpl
public AbstractPagingSortingFilteringRepositoryImpl()
-
-
Method Details
-
addOrderBy
protected void addOrderBy(de.digitalcollections.model.list.paging.PageRequest pageRequest, StringBuilder sqlQuery) -
addPagingAndSorting
public void addPagingAndSorting(de.digitalcollections.model.list.paging.PageRequest pageRequest, StringBuilder sqlQuery) -
getAllowedOrderByFields
- Returns:
- model properties names that are applicable for sorting, will be mapped to database column names using @see #getColumnName
-
getColumnName
- Parameters:
modelProperty- name of model property passed as String, e.g. "lastModified"- Returns:
- full qualified column name as used in sql queries ("last_modified" or e.g. "w.last_modified" if prefix used in queries)
-
getOrderBy
-
getUniqueField
- Returns:
- name of model property that guarantees an unique sorting, e.g. a db primary key or another unique column/field
-
supportsCaseSensitivityForProperty
Returns whether the passed property can be sorted case sensitive (in general). This method should be kept in sync withgetAllowedOrderByFields().- Parameters:
modelProperty- the property name (similar togetColumnName(java.lang.String))- Returns:
trueonly if case (in)sensitive sorting is possible
-