Class EntityRepositoryImpl<E extends de.digitalcollections.model.api.identifiable.entity.Entity>

All Implemented Interfaces:
EntityRepository<E>, IdentifiableRepository<E>
Direct Known Subclasses:
AgentRepositoryImpl, ArticleRepositoryImpl, CollectionRepositoryImpl, CorporateBodyRepositoryImpl, DigitalObjectRepositoryImpl, GeoLocationRepositoryImpl, HumanSettlementRepositoryImpl, ItemRepositoryImpl, PersonRepositoryImpl, ProjectRepositoryImpl, TopicRepositoryImpl, WebsiteRepositoryImpl, WorkRepositoryImpl

@Repository
public class EntityRepositoryImpl<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
extends IdentifiableRepositoryImpl<E>
implements EntityRepository<E>
  • Field Details

  • Constructor Details

    • EntityRepositoryImpl

      protected EntityRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class entityImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues)
    • EntityRepositoryImpl

      protected EntityRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class entityImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins)
    • EntityRepositoryImpl

      protected EntityRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class entityImplClass, 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,​E>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​E>> 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()
    • addRelatedFileresource

      public void addRelatedFileresource​(java.util.UUID entityUuid, java.util.UUID fileResourceUuid)
      Specified by:
      addRelatedFileresource in interface EntityRepository<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
    • findOneByRefId

      public E findOneByRefId​(long refId)
      Specified by:
      findOneByRefId in interface EntityRepository<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
    • findRandom

      public java.util.List<E> findRandom​(int count)
      Specified by:
      findRandom in interface EntityRepository<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
    • getAllowedOrderByFields

      protected java.util.List<java.lang.String> getAllowedOrderByFields()
      Overrides:
      getAllowedOrderByFields in class IdentifiableRepositoryImpl<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
      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)
      Overrides:
      getColumnName in class IdentifiableRepositoryImpl<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
      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)
    • getRelatedFileResources

      public java.util.List<de.digitalcollections.model.api.identifiable.resource.FileResource> getRelatedFileResources​(java.util.UUID entityUuid)
      Specified by:
      getRelatedFileResources in interface EntityRepository<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
    • save

      public E save​(E entity, java.util.Map<java.lang.String,​java.lang.Object> bindings)
      Specified by:
      save in interface IdentifiableRepository<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
      Overrides:
      save in class IdentifiableRepositoryImpl<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
    • saveRelatedFileResources

      public java.util.List<de.digitalcollections.model.api.identifiable.resource.FileResource> saveRelatedFileResources​(java.util.UUID entityUuid, java.util.List<de.digitalcollections.model.api.identifiable.resource.FileResource> fileResources)
      Specified by:
      saveRelatedFileResources in interface EntityRepository<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
    • update

      public E update​(E entity, java.util.Map<java.lang.String,​java.lang.Object> bindings)
      Specified by:
      update in interface IdentifiableRepository<E extends de.digitalcollections.model.api.identifiable.entity.Entity>
      Overrides:
      update in class IdentifiableRepositoryImpl<E extends de.digitalcollections.model.api.identifiable.entity.Entity>