Class HeadwordRepositoryImpl
- 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.semantic.HeadwordRepositoryImpl
-
- All Implemented Interfaces:
HeadwordRepository
@Repository public class HeadwordRepositoryImpl extends JdbiRepositoryImpl implements HeadwordRepository
-
-
Field Summary
Fields Modifier and Type Field Description static StringMAPPING_PREFIXstatic StringSQL_FULL_FIELDS_HWstatic StringSQL_INSERT_FIELDSstatic StringSQL_INSERT_VALUESstatic StringSQL_REDUCED_FIELDS_HWstatic StringTABLE_ALIASstatic StringTABLE_NAME-
Fields inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
dbi, mappingPrefix, tableAlias, tableName
-
Fields inherited from class de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingAndSortingRepositoryImpl
offsetForAlternativePaging
-
-
Constructor Summary
Constructors Constructor Description HeadwordRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, CudamiConfig cudamiConfig)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRelatedEntity(UUID headwordUuid, UUID entityUuid)voidaddRelatedFileresource(UUID headwordUuid, UUID fileResourceUuid)voiddelete(String label, Locale locale)booleandelete(List<UUID> uuids)voiddelete(UUID uuid)voiddeleteRelatedEntities(UUID headwordUuid)voiddeleteRelatedFileresources(UUID headwordUuid)de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.semantic.Headword>find(de.digitalcollections.model.list.paging.PageRequest pageRequest)List<de.digitalcollections.model.semantic.Headword>find(String label, Locale locale)List<de.digitalcollections.model.semantic.Headword>findByLabel(String label)de.digitalcollections.model.semantic.HeadwordfindByLabelAndLocale(String label, Locale locale)de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.semantic.Headword>findByLanguageAndInitial(de.digitalcollections.model.list.paging.PageRequest pageRequest, String language, String initial)de.digitalcollections.model.semantic.HeadwordfindByUuidAndFiltering(UUID uuid, de.digitalcollections.model.list.filtering.Filtering filtering)de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.Entity>findRelatedEntities(UUID headwordUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest)de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.resource.FileResource>findRelatedFileResources(UUID headwordUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest)List<de.digitalcollections.model.semantic.Headword>getAll()protected List<String>getAllowedOrderByFields()StringgetColumnName(String modelProperty)List<Locale>getLanguages()List<de.digitalcollections.model.semantic.Headword>getRandom(int count)List<de.digitalcollections.model.identifiable.entity.Entity>getRelatedEntities(UUID headwordUuid)List<de.digitalcollections.model.identifiable.resource.FileResource>getRelatedFileResources(UUID headwordUuid)protected List<String>getSearchTermTemplates(String tableAlias, String originalSearchTerm)protected StringgetUniqueField()longretrieveCount(StringBuilder sqlCount, Map<String,Object> argumentMappings)List<de.digitalcollections.model.semantic.Headword>retrieveList(String fieldsSql, StringBuilder innerQuery, String orderBy)de.digitalcollections.model.semantic.Headwordsave(de.digitalcollections.model.semantic.Headword headword)List<de.digitalcollections.model.identifiable.entity.Entity>setRelatedEntities(UUID headwordUuid, List<de.digitalcollections.model.identifiable.entity.Entity> entities)List<de.digitalcollections.model.identifiable.resource.FileResource>setRelatedFileResources(UUID headwordUuid, List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources)protected booleansupportsCaseSensitivityForProperty(String modelProperty)Returns whether the passed property can be sorted case sensitive (in general).de.digitalcollections.model.semantic.Headwordupdate(de.digitalcollections.model.semantic.Headword headword)-
Methods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
addFiltering, addFiltering, addSearchTerm, addSearchTermMappings, count, count, escapeTermForJsonpath, getCommonSearchSql, getFilterClauses, getMappingPrefix, getTableAlias, getTableName, getWhereClause, mapFilterExpressionsToOtherTableColumnNames, retrieveNextSortIndexForParentChildren
-
Methods inherited from class de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingAndSortingRepositoryImpl
addOrderBy, addPageRequestParams, getOrderBy
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.semantic.HeadwordRepository
count, find, getByUuid
-
-
-
-
Field Detail
-
MAPPING_PREFIX
public static final String MAPPING_PREFIX
- See Also:
- Constant Field Values
-
SQL_INSERT_FIELDS
public static final String SQL_INSERT_FIELDS
- See Also:
- Constant Field Values
-
SQL_INSERT_VALUES
public static final String SQL_INSERT_VALUES
- See Also:
- Constant Field Values
-
SQL_REDUCED_FIELDS_HW
public static final String SQL_REDUCED_FIELDS_HW
- See Also:
- Constant Field Values
-
SQL_FULL_FIELDS_HW
public static final String SQL_FULL_FIELDS_HW
- See Also:
- Constant Field Values
-
TABLE_ALIAS
public static final String TABLE_ALIAS
- See Also:
- Constant Field Values
-
TABLE_NAME
public static final String TABLE_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
HeadwordRepositoryImpl
@Autowired public HeadwordRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, CudamiConfig cudamiConfig)
-
-
Method Detail
-
addRelatedEntity
public void addRelatedEntity(UUID headwordUuid, UUID entityUuid)
- Specified by:
addRelatedEntityin interfaceHeadwordRepository
-
addRelatedFileresource
public void addRelatedFileresource(UUID headwordUuid, UUID fileResourceUuid)
- Specified by:
addRelatedFileresourcein interfaceHeadwordRepository
-
delete
public void delete(String label, Locale locale)
- Specified by:
deletein interfaceHeadwordRepository
-
delete
public void delete(UUID uuid)
- Specified by:
deletein interfaceHeadwordRepository
-
delete
public boolean delete(List<UUID> uuids)
- Specified by:
deletein interfaceHeadwordRepository
-
deleteRelatedEntities
public void deleteRelatedEntities(UUID headwordUuid)
- Specified by:
deleteRelatedEntitiesin interfaceHeadwordRepository
-
deleteRelatedFileresources
public void deleteRelatedFileresources(UUID headwordUuid)
- Specified by:
deleteRelatedFileresourcesin interfaceHeadwordRepository
-
find
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.semantic.Headword> find(de.digitalcollections.model.list.paging.PageRequest pageRequest)
- Specified by:
findin interfaceHeadwordRepository
-
find
public List<de.digitalcollections.model.semantic.Headword> find(String label, Locale locale)
- Specified by:
findin interfaceHeadwordRepository
-
findByLabel
public List<de.digitalcollections.model.semantic.Headword> findByLabel(String label)
- Specified by:
findByLabelin interfaceHeadwordRepository
-
findByLabelAndLocale
public de.digitalcollections.model.semantic.Headword findByLabelAndLocale(String label, Locale locale)
- Specified by:
findByLabelAndLocalein interfaceHeadwordRepository
-
findByLanguageAndInitial
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.semantic.Headword> findByLanguageAndInitial(de.digitalcollections.model.list.paging.PageRequest pageRequest, String language, String initial)- Specified by:
findByLanguageAndInitialin interfaceHeadwordRepository
-
findByUuidAndFiltering
public de.digitalcollections.model.semantic.Headword findByUuidAndFiltering(UUID uuid, de.digitalcollections.model.list.filtering.Filtering filtering)
- Specified by:
findByUuidAndFilteringin interfaceHeadwordRepository
-
findRelatedEntities
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.Entity> findRelatedEntities(UUID headwordUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest)
- Specified by:
findRelatedEntitiesin interfaceHeadwordRepository
-
findRelatedFileResources
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.resource.FileResource> findRelatedFileResources(UUID headwordUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest)
- Specified by:
findRelatedFileResourcesin interfaceHeadwordRepository
-
getAll
public List<de.digitalcollections.model.semantic.Headword> getAll()
- Specified by:
getAllin interfaceHeadwordRepository
-
getAllowedOrderByFields
protected List<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
public String getColumnName(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)
-
getLanguages
public List<Locale> getLanguages()
- Specified by:
getLanguagesin interfaceHeadwordRepository
-
getRandom
public List<de.digitalcollections.model.semantic.Headword> getRandom(int count)
- Specified by:
getRandomin interfaceHeadwordRepository
-
getRelatedEntities
public List<de.digitalcollections.model.identifiable.entity.Entity> getRelatedEntities(UUID headwordUuid)
- Specified by:
getRelatedEntitiesin interfaceHeadwordRepository
-
getRelatedFileResources
public List<de.digitalcollections.model.identifiable.resource.FileResource> getRelatedFileResources(UUID headwordUuid)
- Specified by:
getRelatedFileResourcesin interfaceHeadwordRepository
-
getSearchTermTemplates
protected List<String> getSearchTermTemplates(String tableAlias, String originalSearchTerm)
- Overrides:
getSearchTermTemplatesin classJdbiRepositoryImpl
-
getUniqueField
protected String getUniqueField()
- Specified by:
getUniqueFieldin classAbstractPagingAndSortingRepositoryImpl- Returns:
- name of model property that guarantees an unique sorting, e.g. a db primary key or another unique column/field
-
retrieveCount
public long retrieveCount(StringBuilder sqlCount, Map<String,Object> argumentMappings)
-
retrieveList
public List<de.digitalcollections.model.semantic.Headword> retrieveList(String fieldsSql, StringBuilder innerQuery, String orderBy)
-
save
public de.digitalcollections.model.semantic.Headword save(de.digitalcollections.model.semantic.Headword headword)
- Specified by:
savein interfaceHeadwordRepository
-
setRelatedEntities
public List<de.digitalcollections.model.identifiable.entity.Entity> setRelatedEntities(UUID headwordUuid, List<de.digitalcollections.model.identifiable.entity.Entity> entities)
- Specified by:
setRelatedEntitiesin interfaceHeadwordRepository
-
setRelatedFileResources
public List<de.digitalcollections.model.identifiable.resource.FileResource> setRelatedFileResources(UUID headwordUuid, List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources)
- Specified by:
setRelatedFileResourcesin interfaceHeadwordRepository
-
supportsCaseSensitivityForProperty
protected boolean supportsCaseSensitivityForProperty(String modelProperty)
Description copied from class:AbstractPagingAndSortingRepositoryImplReturns whether the passed property can be sorted case sensitive (in general). This method should be kept in sync withAbstractPagingAndSortingRepositoryImpl.getAllowedOrderByFields().- Specified by:
supportsCaseSensitivityForPropertyin classAbstractPagingAndSortingRepositoryImpl- Parameters:
modelProperty- the property name (similar toAbstractPagingAndSortingRepositoryImpl.getColumnName(java.lang.String))- Returns:
trueonly if case (in)sensitive sorting is possible
-
update
public de.digitalcollections.model.semantic.Headword update(de.digitalcollections.model.semantic.Headword headword)
- Specified by:
updatein interfaceHeadwordRepository
-
-