Class SubjectRepositoryImpl
java.lang.Object
de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingSortingFilteringRepositoryImpl
de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl<U>
de.digitalcollections.cudami.server.backend.impl.jdbi.UniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>
de.digitalcollections.cudami.server.backend.impl.jdbi.identifiable.semantic.SubjectRepositoryImpl
- All Implemented Interfaces:
SubjectRepository,PagingSortingFilteringRepository<de.digitalcollections.model.identifiable.semantic.Subject>,UniqueObjectRepository<de.digitalcollections.model.identifiable.semantic.Subject>
@Repository
public class SubjectRepositoryImpl
extends UniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>
implements SubjectRepository
-
Field Summary
FieldsFields inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.UniqueObjectRepositoryImpl
additionalReduceRowsBiConsumer, basicReduceRowsBiConsumer, fullReduceRowsBiConsumer, uniqueObjectImplClassFields inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
dbi, mappingPrefix, tableAlias, tableNameFields inherited from class de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingSortingFilteringRepositoryImpl
offsetForAlternativePaging -
Constructor Summary
ConstructorsConstructorDescriptionSubjectRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, CudamiConfig cudamiConfig, DbIdentifierMapper dbIdentifierMapper) -
Method Summary
Modifier and TypeMethodDescriptionde.digitalcollections.model.identifiable.semantic.Subjectcreate()de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.semantic.Subject>find(de.digitalcollections.model.list.paging.PageRequest pageRequest) de.digitalcollections.model.identifiable.semantic.SubjectgetByTypeAndIdentifier(String subjectType, String namespace, String id) getColumnName(String modelProperty) protected LinkedHashMap<String,Function<de.digitalcollections.model.identifiable.semantic.Subject, Optional<Object>>> List<de.digitalcollections.model.identifiable.semantic.Subject>getRandom(int count) protected Stringprotected StringDo not change order! Must match order in getSqlInsertFields!!!getSqlSelectAllFields(String tableAlias, String mappingPrefix) getSqlSelectReducedFields(String tableAlias, String mappingPrefix) protected Stringprotected StringgetTargetExpression(de.digitalcollections.model.list.filtering.FilterCriterion<?> fc) Map expression to target SQL expression (i.e.protected booleanhasSplitColumn(String propertyName) Override this method for check of split fields that exist in the repository's contextvoidsave(de.digitalcollections.model.identifiable.semantic.Subject subject) static StringsqlSelectAllFields(String tableAlias, String mappingPrefix) static StringsqlSelectReducedFields(String tableAlias, String mappingPrefix) protected booleansupportsCaseSensitivityForProperty(String modelProperty) Returns whether the passed property can be sorted case sensitive (in general).voidupdate(de.digitalcollections.model.identifiable.semantic.Subject subject) Methods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.UniqueObjectRepositoryImpl
createAdditionalReduceRowsBiConsumer, createBasicReduceRowsBiConsumer, createFullReduceRowsBiConcumer, deleteByUuid, deleteByUuids, execSelectForList, extractUuids, find, find, find, getByUuidAndFiltering, getIndex, getIndex, getReturnedFieldsOnInsertUpdate, getSqlSelectAllFields, getSqlSelectAllFieldsJoins, getSqlSelectReducedFields, getSqlSelectReducedFieldsJoins, getUniqueField, insertUpdateCallback, retrieveCount, retrieveList, retrieveList, retrieveOne, retrieveOne, retrieveOne, save, save, update, updateMethods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
addFiltering, addFiltering, count, count, escapeTermForJsonpath, execUpdateWithList, execUpdateWithMap, filterByLocalizedTextFields, filterBySplitField, getMappingPrefix, getTableAlias, getTableName, getWhereClause, getWhereClauses, mapFilterExpressionsToOtherTableColumnNames, retrieveNextSortIndexForParentChildren, splitToArray, splitToArrayMethods inherited from class de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingSortingFilteringRepositoryImpl
addOrderBy, addPagingAndSorting, getOrderByMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.identifiable.semantic.SubjectRepository
getByTypeAndIdentifierMethods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.UniqueObjectRepository
count, delete, delete, deleteByUuid, deleteByUuids, getByExample, getByExampleAndFiltering, getByUuid, getByUuidAndFiltering, save, saveOrUpdate, update
-
Field Details
-
MAPPING_PREFIX
- See Also:
-
TABLE_ALIAS
- See Also:
-
TABLE_NAME
- See Also:
-
-
Constructor Details
-
SubjectRepositoryImpl
public SubjectRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, CudamiConfig cudamiConfig, DbIdentifierMapper dbIdentifierMapper)
-
-
Method Details
-
sqlSelectAllFields
-
sqlSelectReducedFields
-
create
public de.digitalcollections.model.identifiable.semantic.Subject create() throws RepositoryException- Specified by:
createin interfaceUniqueObjectRepository<de.digitalcollections.model.identifiable.semantic.Subject>- Throws:
RepositoryException
-
find
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.semantic.Subject> find(de.digitalcollections.model.list.paging.PageRequest pageRequest) throws RepositoryException - Specified by:
findin interfacePagingSortingFilteringRepository<de.digitalcollections.model.identifiable.semantic.Subject>- Overrides:
findin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- Throws:
RepositoryException
-
getAllowedOrderByFields
- Overrides:
getAllowedOrderByFieldsin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- Returns:
- model properties names that are applicable for sorting, will be mapped to database column names using @see #getColumnName
-
getByTypeAndIdentifier
public de.digitalcollections.model.identifiable.semantic.Subject getByTypeAndIdentifier(String subjectType, String namespace, String id) throws RepositoryException - Specified by:
getByTypeAndIdentifierin interfaceSubjectRepository- Throws:
RepositoryException
-
getColumnName
- Overrides:
getColumnNamein classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- 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)
-
getJsonbFields
protected LinkedHashMap<String,Function<de.digitalcollections.model.identifiable.semantic.Subject, getJsonbFields()Optional<Object>>> - Overrides:
getJsonbFieldsin classJdbiRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- Returns:
- map containing name of jsonb field and function to get the field value
-
getLanguages
- Specified by:
getLanguagesin interfaceSubjectRepository- Throws:
RepositoryException
-
getRandom
public List<de.digitalcollections.model.identifiable.semantic.Subject> getRandom(int count) throws RepositoryException - Specified by:
getRandomin interfaceUniqueObjectRepository<de.digitalcollections.model.identifiable.semantic.Subject>- Throws:
RepositoryException
-
getSqlInsertFields
- Overrides:
getSqlInsertFieldsin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- Returns:
- SQL for field names for insert statement of
UniqueObject
-
getSqlInsertValues
Description copied from class:UniqueObjectRepositoryImplDo not change order! Must match order in getSqlInsertFields!!!- Overrides:
getSqlInsertValuesin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- Returns:
- SQL for value mapping for field names for insert statement of
UniqueObject
-
getSqlSelectAllFields
- Overrides:
getSqlSelectAllFieldsin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>
-
getSqlSelectReducedFields
- Overrides:
getSqlSelectReducedFieldsin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>
-
getSqlUpdateFieldValues
- Overrides:
getSqlUpdateFieldValuesin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>
-
getTargetExpression
protected String getTargetExpression(de.digitalcollections.model.list.filtering.FilterCriterion<?> fc) throws IllegalArgumentException Description copied from class:JdbiRepositoryImplMap expression to target SQL expression (i.e. column name).- Overrides:
getTargetExpressionin classJdbiRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- Parameters:
fc- filter criterion containing given expression- Returns:
- target SQL expression used for one operand in WHERE clause
- Throws:
IllegalArgumentException
-
hasSplitColumn
Description copied from class:JdbiRepositoryImplOverride this method for check of split fields that exist in the repository's context- Overrides:
hasSplitColumnin classJdbiRepositoryImpl<de.digitalcollections.model.identifiable.semantic.Subject>- Parameters:
propertyName- java property name- Returns:
- corresponding split-column for property exists
-
save
public void save(de.digitalcollections.model.identifiable.semantic.Subject subject) throws RepositoryException - Specified by:
savein interfaceUniqueObjectRepository<de.digitalcollections.model.identifiable.semantic.Subject>- Throws:
RepositoryException
-
supportsCaseSensitivityForProperty
Description copied from class:AbstractPagingSortingFilteringRepositoryImplReturns whether the passed property can be sorted case sensitive (in general). This method should be kept in sync withAbstractPagingSortingFilteringRepositoryImpl.getAllowedOrderByFields().- Specified by:
supportsCaseSensitivityForPropertyin classAbstractPagingSortingFilteringRepositoryImpl- Parameters:
modelProperty- the property name (similar toAbstractPagingSortingFilteringRepositoryImpl.getColumnName(java.lang.String))- Returns:
trueonly if case (in)sensitive sorting is possible
-
update
public void update(de.digitalcollections.model.identifiable.semantic.Subject subject) throws RepositoryException - Specified by:
updatein interfaceUniqueObjectRepository<de.digitalcollections.model.identifiable.semantic.Subject>- Throws:
RepositoryException
-