Class IdentifiableRepositoryImpl<I extends de.digitalcollections.model.identifiable.Identifiable>
java.lang.Object
de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingAndSortingRepositoryImpl
de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
de.digitalcollections.cudami.server.backend.impl.jdbi.identifiable.IdentifiableRepositoryImpl<I>
- All Implemented Interfaces:
IdentifiableRepository<I>
- Direct Known Subclasses:
EntityRepositoryImpl,FamilyNameRepositoryImpl,FileResourceMetadataRepositoryImpl,GivenNameRepositoryImpl,WebpageRepositoryImpl
@Repository public class IdentifiableRepositoryImpl<I extends de.digitalcollections.model.identifiable.Identifiable> extends JdbiRepositoryImpl implements IdentifiableRepository<I>
-
Field Summary
Fields Modifier and Type Field Description java.util.function.BiFunction<java.util.Map<java.util.UUID,I>,org.jdbi.v3.core.result.RowView,java.util.Map<java.util.UUID,I>>additionalReduceRowsBiFunctionjava.util.function.BiFunction<java.util.Map<java.util.UUID,I>,org.jdbi.v3.core.result.RowView,java.util.Map<java.util.UUID,I>>basicReduceRowsBiFunctionjava.util.function.BiFunction<java.util.Map<java.util.UUID,I>,org.jdbi.v3.core.result.RowView,java.util.Map<java.util.UUID,I>>fullReduceRowsBiFunctionprotected java.lang.ClassidentifiableImplClassprotected IdentifierRepositoryidentifierRepositorystatic java.lang.StringMAPPING_PREFIXprotected java.lang.StringsqlSelectAllFieldsprotected java.lang.StringsqlSelectAllFieldsJoinsprotected java.lang.StringsqlSelectReducedFieldsstatic java.lang.StringTABLE_ALIASstatic java.lang.StringTABLE_NAMEFields inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
dbi, mappingPrefix, tableAlias, tableName -
Constructor Summary
Constructors Modifier Constructor Description protectedIdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository)protectedIdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues)protectedIdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins)protectedIdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins, java.util.function.BiFunction<java.util.Map<java.util.UUID,I>,org.jdbi.v3.core.result.RowView,java.util.Map<java.util.UUID,I>> additionalReduceRowsBiFunction) -
Method Summary
Modifier and Type Method Description voidaddRelatedEntity(java.util.UUID identifiableUuid, java.util.UUID entityUuid)voidaddRelatedFileresource(java.util.UUID identifiableUuid, java.util.UUID fileResourceUuid)booleandelete(java.util.List<java.util.UUID> uuids)booleandeleteIdentifiers(java.util.UUID identifiableUuid)protected java.lang.StringescapeTermForJsonpath(java.lang.String term)Escape characters that must not appear in jsonpath inner strings.de.digitalcollections.model.paging.PageResponse<I>find(de.digitalcollections.model.paging.PageRequest pageRequest)protected de.digitalcollections.model.paging.PageResponse<I>find(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,java.lang.Object> argumentMappings)de.digitalcollections.model.paging.SearchPageResponse<I>find(de.digitalcollections.model.paging.SearchPageRequest searchPageRequest)protected de.digitalcollections.model.paging.SearchPageResponse<I>find(de.digitalcollections.model.paging.SearchPageRequest searchPageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,java.lang.Object> argumentMappings)java.util.List<I>findAllFull()java.util.List<I>findAllReduced()de.digitalcollections.model.paging.PageResponse<I>findByLanguageAndInitial(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.String language, java.lang.String initial)Deprecated.IfindOne(de.digitalcollections.model.identifiable.Identifier identifier)IfindOne(java.util.UUID uuid, de.digitalcollections.model.filter.Filtering filtering)protected java.util.List<java.lang.String>getAllowedOrderByFields()protected java.lang.StringgetColumnName(java.lang.String modelProperty)protected java.lang.StringgetCommonSearchSql(java.lang.String tblAlias)intgetIndex(java.util.List<? extends de.digitalcollections.model.identifiable.Identifiable> list, de.digitalcollections.model.identifiable.Identifiable identifiable)intgetIndex(java.util.List<java.util.UUID> list, java.util.UUID uuid)java.util.List<java.util.Locale>getLanguages()java.util.List<de.digitalcollections.model.identifiable.entity.Entity>getRelatedEntities(java.util.UUID identifiableUuid)java.util.List<de.digitalcollections.model.identifiable.resource.FileResource>getRelatedFileResources(java.util.UUID identifiableUuid)static java.lang.StringgetSqlInsertFields()static java.lang.StringgetSqlInsertValues()java.lang.StringgetSqlSelectAllFields()static java.lang.StringgetSqlSelectAllFields(java.lang.String tableAlias, java.lang.String mappingPrefix)java.lang.StringgetSqlSelectReducedFields()static java.lang.StringgetSqlSelectReducedFields(java.lang.String tableAlias, java.lang.String mappingPrefix)static java.lang.StringgetSqlUpdateFieldValues()longretrieveCount(java.lang.StringBuilder sqlCount, java.util.Map<java.lang.String,java.lang.Object> argumentMappings)java.util.List<I>retrieveList(java.lang.String fieldsSql, java.lang.StringBuilder innerQuery, java.util.Map<java.lang.String,java.lang.Object> argumentMappings, java.lang.String orderBy)protected java.lang.IntegerretrieveNextSortIndexForParentChildren(org.jdbi.v3.core.Jdbi dbi, java.lang.String tableName, java.lang.String columNameParentUuid, java.util.UUID parentUuid)IretrieveOne(java.lang.String fieldsSql, java.lang.String sqlSelectAllFieldsJoins, de.digitalcollections.model.filter.Filtering filtering, java.util.Map<java.lang.String,java.lang.Object> argumentMappings)Isave(I identifiable, java.util.Map<java.lang.String,java.lang.Object> bindings)voidsaveIdentifiers(java.util.Set<de.digitalcollections.model.identifiable.Identifier> identifiers, de.digitalcollections.model.identifiable.Identifiable identifiable)java.util.List<de.digitalcollections.model.identifiable.entity.Entity>saveRelatedEntities(java.util.UUID identifiableUuid, java.util.List<de.digitalcollections.model.identifiable.entity.Entity> entities)java.util.List<de.digitalcollections.model.identifiable.resource.FileResource>saveRelatedFileResources(java.util.UUID identifiableUuid, java.util.List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources)Iupdate(I identifiable, java.util.Map<java.lang.String,java.lang.Object> bindings)Methods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
count, getMappingPrefix, getTableAlias, getTableNameMethods inherited from class de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingAndSortingRepositoryImpl
addFiltering, addFiltering, addLimit, addOffset, addOrderBy, addPageRequestParams, convertToSqlString, getFilterClauses, getOrderBy, getWhereClauseMethods 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.IdentifiableRepository
addRelatedEntity, addRelatedFileresource, count, delete, find, findOne, findOneByIdentifier, getRelatedEntities, getRelatedFileResources, save, saveRelatedEntities, saveRelatedFileResources, update
-
Field Details
-
MAPPING_PREFIX
public static final java.lang.String MAPPING_PREFIX- See Also:
- Constant Field Values
-
TABLE_ALIAS
public static final java.lang.String TABLE_ALIAS- See Also:
- Constant Field Values
-
TABLE_NAME
public static final java.lang.String TABLE_NAME- See Also:
- Constant Field Values
-
additionalReduceRowsBiFunction
-
basicReduceRowsBiFunction
-
fullReduceRowsBiFunction
-
identifiableImplClass
protected final java.lang.Class identifiableImplClass -
identifierRepository
-
sqlSelectAllFields
protected java.lang.String sqlSelectAllFields -
sqlSelectAllFieldsJoins
protected final java.lang.String sqlSelectAllFieldsJoins -
sqlSelectReducedFields
protected java.lang.String sqlSelectReducedFields
-
-
Constructor Details
-
IdentifiableRepositoryImpl
@Autowired protected IdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository) -
IdentifiableRepositoryImpl
protected IdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues) -
IdentifiableRepositoryImpl
protected IdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins) -
IdentifiableRepositoryImpl
protected IdentifiableRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins, java.util.function.BiFunction<java.util.Map<java.util.UUID,I>,org.jdbi.v3.core.result.RowView,java.util.Map<java.util.UUID,I>> additionalReduceRowsBiFunction)
-
-
Method Details
-
getSqlInsertFields
public static java.lang.String getSqlInsertFields() -
getSqlInsertValues
public static java.lang.String getSqlInsertValues() -
getSqlSelectAllFields
public static java.lang.String getSqlSelectAllFields(java.lang.String tableAlias, java.lang.String mappingPrefix) -
getSqlSelectReducedFields
public static java.lang.String getSqlSelectReducedFields(java.lang.String tableAlias, java.lang.String mappingPrefix) -
getSqlUpdateFieldValues
public static java.lang.String getSqlUpdateFieldValues() -
addRelatedEntity
public void addRelatedEntity(java.util.UUID identifiableUuid, java.util.UUID entityUuid)- Specified by:
addRelatedEntityin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
addRelatedFileresource
public void addRelatedFileresource(java.util.UUID identifiableUuid, java.util.UUID fileResourceUuid)- Specified by:
addRelatedFileresourcein interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
delete
public boolean delete(java.util.List<java.util.UUID> uuids)- Specified by:
deletein interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
deleteIdentifiers
public boolean deleteIdentifiers(java.util.UUID identifiableUuid)- Specified by:
deleteIdentifiersin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
escapeTermForJsonpath
protected java.lang.String escapeTermForJsonpath(java.lang.String term)Escape characters that must not appear in jsonpath inner strings.This method should always be used to clean up strings, e.g. search terms, that are intended to appear in an jsonpath inner string, i.e. between double quotes. If the inserted term contains double quotes then the jsonpath breaks. Hence we remove double quotes at start and end of the provided string (they do not have any meaning for the search at all) and escape the remaining ones with a backslash.
- Parameters:
term- , can be null- Returns:
- term with forbidden characters removed or escaped
-
find
public de.digitalcollections.model.paging.PageResponse<I> find(de.digitalcollections.model.paging.PageRequest pageRequest)- Specified by:
findin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
find
protected de.digitalcollections.model.paging.PageResponse<I> find(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,java.lang.Object> argumentMappings) -
find
public de.digitalcollections.model.paging.SearchPageResponse<I> find(de.digitalcollections.model.paging.SearchPageRequest searchPageRequest)- Specified by:
findin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
find
protected de.digitalcollections.model.paging.SearchPageResponse<I> find(de.digitalcollections.model.paging.SearchPageRequest searchPageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,java.lang.Object> argumentMappings) -
findAllFull
- Specified by:
findAllFullin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
findAllReduced
- Specified by:
findAllReducedin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
findByLanguageAndInitial
@Deprecated public de.digitalcollections.model.paging.PageResponse<I> findByLanguageAndInitial(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.String language, java.lang.String initial)Deprecated.- Specified by:
findByLanguageAndInitialin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
findOne
- Specified by:
findOnein interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
findOne
- Specified by:
findOnein interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getAllowedOrderByFields
protected java.util.List<java.lang.String> getAllowedOrderByFields()- Specified by:
getAllowedOrderByFieldsin classAbstractPagingAndSortingRepositoryImpl- Returns:
- model properties names that are applicable for sorting, will be mapped to database column names using @see #getColumnName
-
getColumnName
protected java.lang.String getColumnName(java.lang.String modelProperty)- Specified by:
getColumnNamein classAbstractPagingAndSortingRepositoryImpl- 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)
-
getCommonSearchSql
protected java.lang.String getCommonSearchSql(java.lang.String tblAlias) -
getIndex
public int getIndex(java.util.List<? extends de.digitalcollections.model.identifiable.Identifiable> list, de.digitalcollections.model.identifiable.Identifiable identifiable) -
getIndex
public int getIndex(java.util.List<java.util.UUID> list, java.util.UUID uuid) -
getLanguages
public java.util.List<java.util.Locale> getLanguages()- Specified by:
getLanguagesin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getRelatedEntities
public java.util.List<de.digitalcollections.model.identifiable.entity.Entity> getRelatedEntities(java.util.UUID identifiableUuid)- Specified by:
getRelatedEntitiesin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getRelatedFileResources
public java.util.List<de.digitalcollections.model.identifiable.resource.FileResource> getRelatedFileResources(java.util.UUID identifiableUuid)- Specified by:
getRelatedFileResourcesin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getSqlSelectAllFields
public java.lang.String getSqlSelectAllFields() -
getSqlSelectReducedFields
public java.lang.String getSqlSelectReducedFields() -
retrieveCount
public long retrieveCount(java.lang.StringBuilder sqlCount, java.util.Map<java.lang.String,java.lang.Object> argumentMappings) -
retrieveList
public java.util.List<I> retrieveList(java.lang.String fieldsSql, java.lang.StringBuilder innerQuery, java.util.Map<java.lang.String,java.lang.Object> argumentMappings, java.lang.String orderBy) -
retrieveNextSortIndexForParentChildren
protected java.lang.Integer retrieveNextSortIndexForParentChildren(org.jdbi.v3.core.Jdbi dbi, java.lang.String tableName, java.lang.String columNameParentUuid, java.util.UUID parentUuid) -
retrieveOne
public I retrieveOne(java.lang.String fieldsSql, java.lang.String sqlSelectAllFieldsJoins, de.digitalcollections.model.filter.Filtering filtering, java.util.Map<java.lang.String,java.lang.Object> argumentMappings) -
save
- Specified by:
savein interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
saveIdentifiers
public void saveIdentifiers(java.util.Set<de.digitalcollections.model.identifiable.Identifier> identifiers, de.digitalcollections.model.identifiable.Identifiable identifiable) -
saveRelatedEntities
public java.util.List<de.digitalcollections.model.identifiable.entity.Entity> saveRelatedEntities(java.util.UUID identifiableUuid, java.util.List<de.digitalcollections.model.identifiable.entity.Entity> entities)- Specified by:
saveRelatedEntitiesin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
saveRelatedFileResources
public java.util.List<de.digitalcollections.model.identifiable.resource.FileResource> saveRelatedFileResources(java.util.UUID identifiableUuid, java.util.List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources)- Specified by:
saveRelatedFileResourcesin interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-
update
- Specified by:
updatein interfaceIdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
-