Interface ReactiveAbstractEntityPersister

All Superinterfaces:
org.hibernate.persister.walking.spi.AttributeSource, org.hibernate.metamodel.mapping.Bindable, org.hibernate.metamodel.mapping.Discriminable, org.hibernate.metamodel.mapping.EntityMappingType, org.hibernate.persister.entity.mutation.EntityMutationTarget, org.hibernate.persister.entity.EntityPersister, org.hibernate.metamodel.mapping.EntityValuedModelPart, org.hibernate.sql.results.graph.FetchableContainer, org.hibernate.metamodel.mapping.FilterRestrictable, org.hibernate.metamodel.mapping.JdbcMappingContainer, org.hibernate.loader.ast.spi.Loadable, org.hibernate.metamodel.mapping.ManagedMappingType, org.hibernate.metamodel.mapping.MappingModelExpressible, org.hibernate.metamodel.mapping.MappingType, org.hibernate.metamodel.mapping.ModelPart, org.hibernate.metamodel.mapping.ModelPartContainer, org.hibernate.sql.model.MutationTarget<org.hibernate.persister.entity.mutation.EntityTableMapping>, ReactiveEntityPersister, org.hibernate.metamodel.mapping.Restrictable, org.hibernate.sql.ast.tree.from.RootTableGroupProducer, org.hibernate.metamodel.mapping.SoftDeletableModelPart, org.hibernate.sql.ast.tree.from.TableGroupProducer, org.hibernate.metamodel.mapping.WhereRestrictable
All Known Implementing Classes:
ReactiveJoinedSubclassEntityPersister, ReactiveSingleTableEntityPersister, ReactiveUnionSubclassEntityPersister

public interface ReactiveAbstractEntityPersister extends ReactiveEntityPersister
An abstract implementation of ReactiveEntityPersister whose concrete implementations each extend a concrete subclass of AbstractEntityPersister. Note that there are three main flavors of AbstractEntityPersister, one for each of the three inheritance mapping strategies, and thus we have three flavors of ReactiveEntityPersister. Therefore, this interface is defined as a mixin. This design avoid duplicating the code in this class in the three different subclasses.

Concrete implementations of this interface _must_ also extend AbstractEntityPersister or one of its concrete subclasses.

See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.Bindable

    org.hibernate.metamodel.mapping.Bindable.JdbcValuesBiConsumer<X extends Object,Y extends Object>, org.hibernate.metamodel.mapping.Bindable.JdbcValuesConsumer

    Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.EntityMappingType

    org.hibernate.metamodel.mapping.EntityMappingType.ConstraintOrderedTableConsumer

    Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.ModelPart

    org.hibernate.metamodel.mapping.ModelPart.JdbcValueBiConsumer<X extends Object,Y extends Object>, org.hibernate.metamodel.mapping.ModelPart.JdbcValueConsumer
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Log
     

    Fields inherited from interface org.hibernate.persister.entity.EntityPersister

    ENTITY_ID
  • Method Summary

    Modifier and Type
    Method
    Description
    createLazyLoadPlan(List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, String[] subclassPropertyNameClosure)
     
    createLazyLoadPlanByFetchGroup(org.hibernate.bytecode.spi.BytecodeEnhancementMetadata metadata, String[] subclassPropertyNameClosure)
     
    default org.hibernate.generator.values.GeneratedValuesMutationDelegate
     
    default org.hibernate.generator.values.GeneratedValuesMutationDelegate
     
    default org.hibernate.persister.entity.AbstractEntityPersister
    A self-reference of type AbstractEntityPersister.
    org.hibernate.loader.ast.spi.SingleIdEntityLoader<?>
    determineLoaderToUse(org.hibernate.engine.spi.SharedSessionContractImplementor session, org.hibernate.LockOptions lockOptions)
     
    default org.hibernate.metamodel.mapping.NaturalIdMapping
    generateNaturalIdMapping(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess creationProcess, org.hibernate.mapping.PersistentClass bootEntityDescriptor)
     
    default String
    generateSelectLockString(org.hibernate.LockOptions lockOptions)
     
    default String
    generateUpdateLockString(org.hibernate.LockOptions lockOptions)
     
    getLazyLoadPlanByFetchGroup(String[] subclassPropertyNameClosure)
     
    default org.hibernate.loader.ast.spi.NaturalIdLoader<?>
     
    getReactiveConnection(org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
     
    default int
    getSubclassPropertyIndex(String propertyName, String[] subclassPropertyNameClosure)
     
    org.hibernate.type.BasicType<?>
     
    void
    initializeLazyProperty(Object entity, org.hibernate.engine.spi.EntityEntry entry, Object propValue, int index, org.hibernate.type.Type type)
     
    boolean
    initializeLazyProperty(String fieldName, Object entity, org.hibernate.engine.spi.EntityEntry entry, org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor fetchGroupAttributeDescriptor, Object propValue)
     
    initializeLazyProperty(String fieldName, Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
    initLazyProperty(String fieldName, Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session, org.hibernate.engine.spi.EntityEntry entry, org.hibernate.engine.spi.PersistentAttributeInterceptor interceptor, List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, Set<String> initializedLazyAttributeNames, Object[] results)
     
    boolean
     
    default Object
    nextVersionForLock(org.hibernate.LockMode lockMode, Object id, Object currentVersion, Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
    reactiveGetCurrentVersion(Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
    reactiveGetDatabaseSnapshot(Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
    Get the current database state of the object, in a "hydrated" form, without resolving identifiers
    reactiveGetOrCreateLazyLoadPlan(String fieldName, List<org.hibernate.metamodel.mapping.ModelPart> partsToSelect)
     
     
    reactiveInitializeEnhancedEntityUsedAsProxy(Object entity, String nameOfAttributeBeingAccessed, org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
    reactiveInitializeLazyPropertiesFromDatastore(Object entity, Object id, org.hibernate.engine.spi.EntityEntry entry, String fieldName, org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
    default <E, T> CompletionStage<T>
    reactiveInitializeLazyProperty(jakarta.persistence.metamodel.Attribute<E,T> field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
    default <E, T> CompletionStage<T>
    reactiveInitializeLazyProperty(String field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
     
    reactiveLock(Object id, Object version, Object object, org.hibernate.LockOptions lockOptions, org.hibernate.engine.spi.SharedSessionContractImplementor session)
    Obtain a pessimistic lock without blocking

    Methods inherited from interface org.hibernate.persister.walking.spi.AttributeSource

    getPropertyIndex

    Methods inherited from interface org.hibernate.metamodel.mapping.Bindable

    forEachDisassembledJdbcValue, forEachDisassembledJdbcValue, forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachJdbcValue, forEachJdbcValue

    Methods inherited from interface org.hibernate.metamodel.mapping.EntityMappingType

    applyBaseRestrictions, applyDiscriminator, applyFilterRestrictions, applyWhereRestrictions, asEntityMappingType, createPrimaryTableReference, createRootTableGroup, createTableReferenceJoin, extractConcreteTypeStateValues, findContainingEntityMapping, findDeclaredAttributeMapping, findSubPart, findSubTypesSubPart, forEachAttributeMapping, getAttributeMappings, getContributor, getDeclaredAttributeMappings, getDiscriminatorMapping, getDiscriminatorSQLValue, getDiscriminatorValue, getEntityPersister, getFetchable, getIdentifierMapping, getIdentifierMappingForJoin, getIdentifierTableDetails, getJavaType, getJdbcTypeCount, getMappedJavaType, getMappedSuperclass, getMappedTableDetails, getNaturalIdMapping, getNumberOfAttributeMappings, getNumberOfDeclaredAttributeMappings, getNumberOfFetchables, getPartMappingType, getPartName, getRootEntityDescriptor, getRootPathName, getRowIdMapping, getSoftDeleteMapping, getSoftDeleteTableDetails, getSubclassEntityNames, getSubclassId, getSubMappingTypes, getSuperMappingType, getVersionMapping, hasSubclasses, hasWhereRestrictions, isAbstract, isAffectedByEnabledFetchProfiles, isAffectedByEnabledFilters, isAffectedByEntityGraph, isConcreteProxy, isExplicitPolymorphism, isTypeOrSuperType, isTypeOrSuperType, optimisticLockStyle, pruneForSubclasses, resolveConcreteProxyTypeForId, visitAttributeMappings, visitConstraintOrderedTables, visitDeclaredAttributeMappings, visitSubTypeAttributeMappings, visitSuperTypeAttributeMappings

    Methods inherited from interface org.hibernate.persister.entity.mutation.EntityMutationTarget

    addDiscriminatorToInsertGroup, addSoftDeleteToInsertGroup, getAttributeMutationTableName, getIdentifierDescriptor, getIdentifierTableMapping, getIdentityInsertDelegate, getInsertDelegate, getMutationDelegate, getTableMappings, getTargetPart, getUpdateDelegate, physicalTableNameForMutation

    Methods inherited from interface org.hibernate.persister.entity.EntityPersister

    addToCacheKey, afterInitialize, afterReassociate, breakDownJdbcValues, buildCacheEntry, canExtractIdOutOfEntity, canReadFromCache, canUseReferenceCacheEntries, canWriteToCache, countSubclassProperties, createProxy, delete, findDirty, findModified, forceVersionIncrement, forceVersionIncrement, getAttributeMapping, getBatchSize, getBytecodeEnhancementMetadata, getCacheAccessStrategy, getCacheEntryStructure, getConcreteProxyClass, getConstraintOrderedTableKeyColumnClosure, getCurrentVersion, getDatabaseSnapshot, getDeleteCoordinator, getDiscriminatorAlias, getDiscriminatorColumnName, getDiscriminatorDomainType, getDiscriminatorType, getEntityEntryFactory, getEntityMappingType, getEntityMetamodel, getEntityName, getFactory, getFilterAliasGenerator, getFilterAliasGenerator, getGeneratedProperties, getGenerator, getIdByUniqueKey, getIdentifier, getIdentifier, getIdentifier, getIdentifierAliases, getIdentifierColumnNames, getIdentifierGenerator, getIdentifierPropertyName, getIdentifierType, getIdentitySelectString, getImportedName, getInsertCoordinator, getInsertGeneratedProperties, getInstrumentationMetadata, getJpaEntityName, getKeyColumns, getMappedClass, getMergeCoordinator, getMultiNaturalIdLoader, getNaturalIdCacheAccessStrategy, getNaturalIdentifierProperties, getNaturalIdentifierSnapshot, getNonLazyPropertyUpdateability, getPropertyAliases, getPropertyCascadeStyles, getPropertyCheckability, getPropertyColumnNames, getPropertyInsertability, getPropertyLaziness, getPropertyNames, getPropertyNullability, getPropertySpaces, getPropertyType, getPropertyTypes, getPropertyUpdateability, getPropertyValue, getPropertyValue, getPropertyValues, getPropertyValuesToInsert, getPropertyVersionability, getQuerySpaces, getRepresentationStrategy, getRootEntityName, getRootTableIdentifierColumnNames, getRootTableKeyColumnNames, getRootTableName, getSelectByUniqueKeyString, getSelectByUniqueKeyString, getSelectByUniqueKeyString, getSqlAliasStem, getSqmMultiTableInsertStrategy, getSqmMultiTableMutationStrategy, getSubclassEntityPersister, getSubclassPropertyColumnAliases, getSubclassPropertyColumnNames, getSubclassTableName, getSubclassTableSpan, getSynchronizationSpaces, getSynchronizedQuerySpaces, getTableName, getTableName, getTableNameForColumn, getTableNames, getTableSpan, getTypeDiscriminatorMetadata, getUpdateCoordinator, getUpdateGeneratedProperties, getValue, getValues, getVersion, getVersionColumnName, getVersionGenerator, getVersionJavaType, getVersionProperty, hasCache, hasCascadeDelete, hasCascadePersist, hasCascades, hasCollectionNotReferencingPK, hasCollections, hasDuplicateTables, hasFilterForLoadByKey, hasIdentifierProperty, hasInsertGeneratedProperties, hasLazyProperties, hasMultipleTables, hasMutableProperties, hasNaturalIdCache, hasNaturalIdentifier, hasOwnedCollections, hasProxy, hasRowId, hasSubselectLoadableCollections, hasToOnes, hasUninitializedLazyProperties, hasUpdateGeneratedProperties, initializeEnhancedEntityUsedAsProxy, insert, insert, instantiate, isBatchLoadable, isCacheInvalidationRequired, isIdentifierAssignedByInsert, isInherited, isInstance, isInstrumented, isInverseTable, isLazyPropertiesCacheable, isMutable, isNullableTable, isPropertySelectable, isSelectBeforeUpdateRequired, isSharedColumn, isSubclassEntityName, isTransient, isVersioned, isVersionPropertyGenerated, load, load, load, load, loadByUniqueKey, loadEntityIdByNaturalId, lock, lock, lock, lock, managesColumns, merge, multiLoad, multiLoad, postInstantiate, prepareLoaders, processInsertGeneratedProperties, processInsertGeneratedProperties, processUpdateGeneratedProperties, processUpdateGeneratedProperties, resetIdentifier, resolveAttributeIndexes, resolveDirtyAttributeIndexes, selectFragment, setIdentifier, setPropertyValue, setPropertyValues, setValue, setValues, storeDiscriminatorInShallowQueryCacheLayout, toColumns, uniqueKeyEntries, update, useShallowQueryCacheLayout, visitQuerySpaces

    Methods inherited from interface org.hibernate.metamodel.mapping.EntityValuedModelPart

    applySqlSelections, applySqlSelections, createDomainResult, disassemble, findSubPart, forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachSubPart, visitSubParts

    Methods inherited from interface org.hibernate.sql.results.graph.FetchableContainer

    getKeyFetchable, getNumberOfFetchableKeys, getNumberOfKeyFetchables, getSelectableIndex, visitFetchables, visitFetchables, visitFetchables, visitKeyFetchables, visitKeyFetchables, visitKeyFetchables

    Methods inherited from interface org.hibernate.metamodel.mapping.FilterRestrictable

    applyFilterRestrictions

    Methods inherited from interface org.hibernate.metamodel.mapping.JdbcMappingContainer

    getJdbcMapping, getSingleJdbcMapping

    Methods inherited from interface org.hibernate.loader.ast.spi.Loadable

    isAffectedByEnabledFilters, isAffectedByInfluencers, isAffectedByInfluencers, isNotAffectedByInfluencers

    Methods inherited from interface org.hibernate.metamodel.mapping.ManagedMappingType

    anyRequiresAggregateColumnWriter, findAttributeMapping, forEachAttributeMapping, hasPartitionedSelectionMapping, isAffectedByEnabledFilters

    Methods inherited from interface org.hibernate.metamodel.mapping.ModelPart

    areEqual, asAttributeMapping, asBasicValuedModelPart, breakDownJdbcValues, decompose, decompose, forEachSelectable, forEachSelectable, getNavigableRole, isEntityIdentifierMapping, isVirtual

    Methods inherited from interface org.hibernate.metamodel.mapping.ModelPartContainer

    findByPath, findByPath, forEachSubPart

    Methods inherited from interface org.hibernate.sql.model.MutationTarget

    forEachMutableTable, forEachMutableTableReverse, getIdentifierTableName, getNavigableRole, getRolePath

    Methods inherited from interface org.hibernate.metamodel.mapping.Restrictable

    applyBaseRestrictions

    Methods inherited from interface org.hibernate.sql.ast.tree.from.TableGroupProducer

    containsTableReference
  • Field Details

    • LOG

      static final Log LOG
  • Method Details

    • delegate

      default org.hibernate.persister.entity.AbstractEntityPersister delegate()
      A self-reference of type AbstractEntityPersister.
      Returns:
      this object
    • createReactiveInsertDelegate

      default org.hibernate.generator.values.GeneratedValuesMutationDelegate createReactiveInsertDelegate()
    • createReactiveUpdateDelegate

      default org.hibernate.generator.values.GeneratedValuesMutationDelegate createReactiveUpdateDelegate()
    • getReactiveConnection

      default ReactiveConnection getReactiveConnection(org.hibernate.engine.spi.SharedSessionContractImplementor session)
    • generateSelectLockString

      default String generateSelectLockString(org.hibernate.LockOptions lockOptions)
    • generateUpdateLockString

      default String generateUpdateLockString(org.hibernate.LockOptions lockOptions)
    • reactiveLock

      default CompletionStage<Void> reactiveLock(Object id, Object version, Object object, org.hibernate.LockOptions lockOptions, org.hibernate.engine.spi.SharedSessionContractImplementor session) throws org.hibernate.HibernateException
      Description copied from interface: ReactiveEntityPersister
      Obtain a pessimistic lock without blocking
      Specified by:
      reactiveLock in interface ReactiveEntityPersister
      Throws:
      org.hibernate.HibernateException
    • getVersionType

      org.hibernate.type.BasicType<?> getVersionType()
      Specified by:
      getVersionType in interface org.hibernate.persister.entity.EntityPersister
      See Also:
      • AbstractEntityPersister.getVersionType()
    • nextVersionForLock

      default Object nextVersionForLock(org.hibernate.LockMode lockMode, Object id, Object currentVersion, Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      See Also:
      • AbstractEntityPersister.forceVersionIncrement(Object, Object, SharedSessionContractImplementor)
    • reactiveGetDatabaseSnapshot

      default CompletionStage<Object[]> reactiveGetDatabaseSnapshot(Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Description copied from interface: ReactiveEntityPersister
      Get the current database state of the object, in a "hydrated" form, without resolving identifiers
      Specified by:
      reactiveGetDatabaseSnapshot in interface ReactiveEntityPersister
      Returns:
      null if there is no row in the database
    • getReactiveSingleIdEntityLoader

      default ReactiveSingleIdEntityLoader<?> getReactiveSingleIdEntityLoader()
    • reactiveGetCurrentVersion

      default CompletionStage<Object> reactiveGetCurrentVersion(Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Specified by:
      reactiveGetCurrentVersion in interface ReactiveEntityPersister
      See Also:
      • AbstractEntityPersister.getCurrentVersion(Object, SharedSessionContractImplementor)
    • reactiveInitializeLazyProperty

      default <E, T> CompletionStage<T> reactiveInitializeLazyProperty(jakarta.persistence.metamodel.Attribute<E,T> field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Specified by:
      reactiveInitializeLazyProperty in interface ReactiveEntityPersister
    • reactiveInitializeLazyProperty

      default <E, T> CompletionStage<T> reactiveInitializeLazyProperty(String field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Specified by:
      reactiveInitializeLazyProperty in interface ReactiveEntityPersister
    • reactiveInitializeLazyPropertiesFromDatastore

      default CompletionStage<Object> reactiveInitializeLazyPropertiesFromDatastore(Object entity, Object id, org.hibernate.engine.spi.EntityEntry entry, String fieldName, org.hibernate.engine.spi.SharedSessionContractImplementor session)
    • isNonLazyPropertyName

      boolean isNonLazyPropertyName(String fieldName)
    • reactiveGetOrCreateLazyLoadPlan

      ReactiveSingleIdArrayLoadPlan reactiveGetOrCreateLazyLoadPlan(String fieldName, List<org.hibernate.metamodel.mapping.ModelPart> partsToSelect)
    • initLazyProperty

      default CompletionStage<Object> initLazyProperty(String fieldName, Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session, org.hibernate.engine.spi.EntityEntry entry, org.hibernate.engine.spi.PersistentAttributeInterceptor interceptor, List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, Set<String> initializedLazyAttributeNames, Object[] results)
    • reactiveInitializeEnhancedEntityUsedAsProxy

      default CompletionStage<Object> reactiveInitializeEnhancedEntityUsedAsProxy(Object entity, String nameOfAttributeBeingAccessed, org.hibernate.engine.spi.SharedSessionContractImplementor session)
      Specified by:
      reactiveInitializeEnhancedEntityUsedAsProxy in interface ReactiveEntityPersister
    • initializeLazyProperty

      boolean initializeLazyProperty(String fieldName, Object entity, org.hibernate.engine.spi.EntityEntry entry, org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor fetchGroupAttributeDescriptor, Object propValue)
    • initializeLazyProperty

      void initializeLazyProperty(Object entity, org.hibernate.engine.spi.EntityEntry entry, Object propValue, int index, org.hibernate.type.Type type)
    • determineLoaderToUse

      org.hibernate.loader.ast.spi.SingleIdEntityLoader<?> determineLoaderToUse(org.hibernate.engine.spi.SharedSessionContractImplementor session, org.hibernate.LockOptions lockOptions)
    • initializeLazyProperty

      Object initializeLazyProperty(String fieldName, Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
    • reactiveGetSQLLazySelectLoadPlan

      ReactiveSingleIdArrayLoadPlan reactiveGetSQLLazySelectLoadPlan(String fetchGroup)
    • generateNaturalIdMapping

      default org.hibernate.metamodel.mapping.NaturalIdMapping generateNaturalIdMapping(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess creationProcess, org.hibernate.mapping.PersistentClass bootEntityDescriptor)
      See Also:
      • AbstractEntityPersister.generateNaturalIdMapping(MappingModelCreationProcess, PersistentClass)
    • getNaturalIdLoader

      default org.hibernate.loader.ast.spi.NaturalIdLoader<?> getNaturalIdLoader()
      Specified by:
      getNaturalIdLoader in interface org.hibernate.metamodel.mapping.EntityMappingType
      Specified by:
      getNaturalIdLoader in interface org.hibernate.persister.entity.EntityPersister
    • getLazyLoadPlanByFetchGroup

      default Map<String,ReactiveSingleIdArrayLoadPlan> getLazyLoadPlanByFetchGroup(String[] subclassPropertyNameClosure)
      See Also:
      • AbstractEntityPersister.getLazyLoadPlanByFetchGroup()
    • createLazyLoadPlanByFetchGroup

      default Map<String,ReactiveSingleIdArrayLoadPlan> createLazyLoadPlanByFetchGroup(org.hibernate.bytecode.spi.BytecodeEnhancementMetadata metadata, String[] subclassPropertyNameClosure)
    • createLazyLoadPlan

      default ReactiveSingleIdArrayLoadPlan createLazyLoadPlan(List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, String[] subclassPropertyNameClosure)
    • getSubclassPropertyIndex

      default int getSubclassPropertyIndex(String propertyName, String[] subclassPropertyNameClosure)