Class IdentifiableRepositoryImpl<I extends de.digitalcollections.model.identifiable.Identifiable>

    • Field Detail

      • additionalReduceRowsBiFunction

        public BiFunction<Map<UUID,​I extends de.digitalcollections.model.identifiable.Identifiable>,​org.jdbi.v3.core.result.RowView,​Map<UUID,​I extends de.digitalcollections.model.identifiable.Identifiable>> additionalReduceRowsBiFunction
      • basicReduceRowsBiFunction

        public final BiFunction<Map<UUID,​I extends de.digitalcollections.model.identifiable.Identifiable>,​org.jdbi.v3.core.result.RowView,​Map<UUID,​I extends de.digitalcollections.model.identifiable.Identifiable>> basicReduceRowsBiFunction
      • fullReduceRowsBiFunction

        public final BiFunction<Map<UUID,​I extends de.digitalcollections.model.identifiable.Identifiable>,​org.jdbi.v3.core.result.RowView,​Map<UUID,​I extends de.digitalcollections.model.identifiable.Identifiable>> fullReduceRowsBiFunction
      • identifiableImplClass

        protected final Class identifiableImplClass
      • sqlSelectAllFields

        protected String sqlSelectAllFields
      • sqlSelectAllFieldsJoins

        protected final String sqlSelectAllFieldsJoins
      • sqlSelectReducedFields

        protected String sqlSelectReducedFields
    • Constructor Detail

      • IdentifiableRepositoryImpl

        @Autowired
        protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi)
      • IdentifiableRepositoryImpl

        protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi,
                                             String tableName,
                                             String tableAlias,
                                             String mappingPrefix,
                                             Class identifiableImplClass,
                                             String sqlSelectAllFields,
                                             String sqlSelectReducedFields,
                                             String sqlInsertFields,
                                             String sqlInsertValues,
                                             String sqlUpdateFieldValues)
      • IdentifiableRepositoryImpl

        protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi,
                                             String tableName,
                                             String tableAlias,
                                             String mappingPrefix,
                                             Class identifiableImplClass,
                                             String sqlSelectAllFields,
                                             String sqlSelectReducedFields,
                                             String sqlInsertFields,
                                             String sqlInsertValues,
                                             String sqlUpdateFieldValues,
                                             String sqlSelectAllFieldsJoins)
      • IdentifiableRepositoryImpl

        protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi,
                                             String tableName,
                                             String tableAlias,
                                             String mappingPrefix,
                                             Class identifiableImplClass,
                                             String sqlSelectAllFields,
                                             String sqlSelectReducedFields,
                                             String sqlInsertFields,
                                             String sqlInsertValues,
                                             String sqlUpdateFieldValues,
                                             String sqlSelectAllFieldsJoins,
                                             BiFunction<Map<UUID,​I>,​org.jdbi.v3.core.result.RowView,​Map<UUID,​I>> additionalReduceRowsBiFunction)
    • Method Detail

      • getSqlInsertFields

        public static String getSqlInsertFields()
      • getSqlInsertValues

        public static String getSqlInsertValues()
      • getSqlSelectAllFields

        public static String getSqlSelectAllFields​(String tableAlias,
                                                   String mappingPrefix)
      • getSqlSelectReducedFields

        public static String getSqlSelectReducedFields​(String tableAlias,
                                                       String mappingPrefix)
      • getSqlUpdateFieldValues

        public static String getSqlUpdateFieldValues()
      • escapeTermForJsonpath

        protected String escapeTermForJsonpath​(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:
        find in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • find

        protected de.digitalcollections.model.paging.PageResponse<I> find​(de.digitalcollections.model.paging.PageRequest pageRequest,
                                                                          String commonSql,
                                                                          Map<String,​Object> argumentMappings)
      • find

        public de.digitalcollections.model.paging.SearchPageResponse<I> find​(de.digitalcollections.model.paging.SearchPageRequest searchPageRequest)
        Specified by:
        find in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • find

        protected de.digitalcollections.model.paging.SearchPageResponse<I> find​(de.digitalcollections.model.paging.SearchPageRequest searchPageRequest,
                                                                                String commonSql,
                                                                                Map<String,​Object> argumentMappings)
      • findByLanguageAndInitial

        @Deprecated
        public de.digitalcollections.model.paging.PageResponse<I> findByLanguageAndInitial​(de.digitalcollections.model.paging.PageRequest pageRequest,
                                                                                           String language,
                                                                                           String initial)
        Deprecated.
        Specified by:
        findByLanguageAndInitial in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • findOne

        public I findOne​(UUID uuid,
                         de.digitalcollections.model.filter.Filtering filtering)
        Specified by:
        findOne in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • findOne

        public I findOne​(de.digitalcollections.model.identifiable.Identifier identifier)
        Specified by:
        findOne in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • getColumnName

        protected String getColumnName​(String modelProperty)
        Specified by:
        getColumnName in class AbstractPagingAndSortingRepositoryImpl
        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 String getCommonSearchSql​(String tblAlias)
      • getIndex

        public int getIndex​(List<? extends de.digitalcollections.model.identifiable.Identifiable> list,
                            de.digitalcollections.model.identifiable.Identifiable identifiable)
      • getIndex

        public int getIndex​(List<UUID> list,
                            UUID uuid)
      • getRelatedEntities

        public List<de.digitalcollections.model.identifiable.entity.Entity> getRelatedEntities​(UUID identifiableUuid)
        Specified by:
        getRelatedEntities in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • getRelatedFileResources

        public List<de.digitalcollections.model.identifiable.resource.FileResource> getRelatedFileResources​(UUID identifiableUuid)
        Specified by:
        getRelatedFileResources in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • getSearchTermTemplates

        protected List<String> getSearchTermTemplates​(String tableAlias)
      • getSqlSelectAllFields

        public String getSqlSelectAllFields()
      • getSqlSelectReducedFields

        public String getSqlSelectReducedFields()
      • retrieveOne

        public I retrieveOne​(String fieldsSql,
                             String sqlSelectAllFieldsJoins,
                             de.digitalcollections.model.filter.Filtering filtering)
      • retrieveOne

        public I retrieveOne​(String fieldsSql,
                             String sqlSelectAllFieldsJoins,
                             de.digitalcollections.model.filter.Filtering filtering,
                             Map<String,​Object> argumentMappings)
      • saveRelatedEntities

        public List<de.digitalcollections.model.identifiable.entity.Entity> saveRelatedEntities​(UUID identifiableUuid,
                                                                                                List<de.digitalcollections.model.identifiable.entity.Entity> entities)
        Specified by:
        saveRelatedEntities in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>
      • saveRelatedFileResources

        public List<de.digitalcollections.model.identifiable.resource.FileResource> saveRelatedFileResources​(UUID identifiableUuid,
                                                                                                             List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources)
        Specified by:
        saveRelatedFileResources in interface IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable>