Interface ReactiveAbstractEntityPersister
-
- All Superinterfaces:
org.hibernate.persister.walking.spi.AttributeSource
,org.hibernate.metamodel.mapping.Bindable
,org.hibernate.metamodel.mapping.Discriminatable
,org.hibernate.metamodel.mapping.EntityMappingType
,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.persister.entity.Joinable
,org.hibernate.loader.ast.spi.Loadable
,org.hibernate.persister.entity.Loadable
,org.hibernate.persister.entity.Lockable
,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.persister.entity.OuterJoinLoadable
,ReactiveEntityPersister
,org.hibernate.metamodel.mapping.Restrictable
,org.hibernate.sql.ast.tree.from.RootTableGroupProducer
,org.hibernate.sql.ast.tree.from.TableGroupProducer
,org.hibernate.metamodel.mapping.WhereRestrictable
- All Known Implementing Classes:
ReactiveJoinedSubclassEntityPersister
,ReactiveSingleTableEntityPersister
,ReactiveUnionSubclassEntityPersister
public interface ReactiveAbstractEntityPersister extends ReactiveEntityPersister, org.hibernate.persister.entity.OuterJoinLoadable, org.hibernate.persister.entity.Lockable
An abstract implementation ofReactiveEntityPersister
whose concrete implementations each extend a concrete subclass ofAbstractEntityPersister
. Note that there are three main flavors ofAbstractEntityPersister
, one for each of the three inheritance mapping strategies, and thus we have three flavors ofReactiveEntityPersister
. 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 extendAbstractEntityPersister
or one of its concrete subclasses.- See Also:
AbstractEntityPersister
,ReactiveJoinedSubclassEntityPersister
,ReactiveUnionSubclassEntityPersister
,ReactiveSingleTableEntityPersister
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.Bindable
org.hibernate.metamodel.mapping.Bindable.JdbcValuesBiConsumer<X extends java.lang.Object,Y extends java.lang.Object>, org.hibernate.metamodel.mapping.Bindable.JdbcValuesConsumer
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description boolean
check(int rows, java.lang.Object id, int tableNumber, org.hibernate.jdbc.Expectation expectation, java.sql.PreparedStatement statement, java.lang.String sql)
default ReactiveSingleIdArrayLoadPlan
createLazyLoadPlan(java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, java.lang.String[] subclassPropertyNameClosure)
default java.util.Map<java.lang.String,ReactiveSingleIdArrayLoadPlan>
createLazyLoadPlanByFetchGroup(org.hibernate.bytecode.spi.BytecodeEnhancementMetadata metadata, java.lang.String[] subclassPropertyNameClosure)
default org.hibernate.persister.entity.AbstractEntityPersister
delegate()
A self-reference of typeAbstractEntityPersister
.default org.hibernate.metamodel.mapping.NaturalIdMapping
generateNaturalIdMapping(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess creationProcess, org.hibernate.mapping.PersistentClass bootEntityDescriptor)
default java.lang.String
generateSelectLockString(org.hibernate.LockOptions lockOptions)
default java.lang.String
generateUpdateLockString(org.hibernate.LockOptions lockOptions)
default java.util.Map<java.lang.String,ReactiveSingleIdArrayLoadPlan>
getLazyLoadPlanByFetchGroup(java.lang.String[] subclassPropertyNameClosure)
java.lang.String[][]
getLazyPropertyColumnAliases()
default org.hibernate.loader.ast.spi.NaturalIdLoader<?>
getNaturalIdLoader()
default ReactiveConnection
getReactiveConnection(org.hibernate.engine.spi.SharedSessionContractImplementor session)
ReactiveSingleIdEntityLoader<?>
getReactiveSingleIdEntityLoader()
default int
getSubclassPropertyIndex(java.lang.String propertyName, java.lang.String[] subclassPropertyNameClosure)
org.hibernate.type.BasicType<?>
getVersionType()
boolean
initializeLazyProperty(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.EntityEntry entry, int lazyIndex, java.lang.Object selectedValue)
java.lang.Object
initializeLazyProperty(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
default java.util.concurrent.CompletionStage<java.lang.Object>
initLazyProperty(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session, org.hibernate.engine.spi.EntityEntry entry, org.hibernate.engine.spi.PersistentAttributeInterceptor interceptor, java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, java.util.Set<java.lang.String> initializedLazyAttributeNames, java.lang.Object[] values)
boolean
isBatchable()
default java.lang.Object
nextVersionForLock(org.hibernate.LockMode lockMode, java.lang.Object id, java.lang.Object currentVersion, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
default Parameters
parameters()
default java.util.concurrent.CompletionStage<java.lang.Object>
reactiveGetCurrentVersion(java.lang.Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
default java.util.concurrent.CompletionStage<java.lang.Object[]>
reactiveGetDatabaseSnapshot(java.lang.Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
Get the current database state of the object, in a "hydrated" form, without resolving identifiersReactiveSingleIdArrayLoadPlan
reactiveGetSQLLazySelectLoadPlan(java.lang.String fetchGroup)
default java.util.concurrent.CompletionStage<java.lang.Object>
reactiveInitializeEnhancedEntityUsedAsProxy(java.lang.Object entity, java.lang.String nameOfAttributeBeingAccessed, org.hibernate.engine.spi.SharedSessionContractImplementor session)
default java.util.concurrent.CompletionStage<java.lang.Object>
reactiveInitializeLazyPropertiesFromDatastore(java.lang.Object entity, java.lang.Object id, org.hibernate.engine.spi.EntityEntry entry, java.lang.String fieldName, org.hibernate.engine.spi.SharedSessionContractImplementor session)
default <E,T>
java.util.concurrent.CompletionStage<T>reactiveInitializeLazyProperty(jakarta.persistence.metamodel.Attribute<E,T> field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
default <E,T>
java.util.concurrent.CompletionStage<T>reactiveInitializeLazyProperty(java.lang.String field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
default java.util.concurrent.CompletionStage<java.lang.Void>
reactiveLock(java.lang.Object id, java.lang.Object version, java.lang.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, getJdbcMappings
-
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, getEntityPersister, getFetchable, getIdentifierMapping, getIdentifierTableDetails, getJavaType, getJdbcTypeCount, getMappedJavaType, getMappedSuperclass, getMappedTableDetails, getNaturalIdMapping, getNumberOfAttributeMappings, getNumberOfDeclaredAttributeMappings, getNumberOfFetchables, getPartMappingType, getPartName, getRootEntityDescriptor, getRootPathName, getRowIdMapping, getSubclassEntityNames, getSubclassId, getSubMappingTypes, getSuperMappingType, getVersionMapping, isAffectedByEnabledFetchProfiles, isAffectedByEnabledFilters, isAffectedByEntityGraph, isExplicitPolymorphism, isTypeOrSuperType, isTypeOrSuperType, optimisticLockStyle, pruneForSubclasses, pruneForSubclasses, visitAttributeMappings, visitConstraintOrderedTables, visitDeclaredAttributeMappings, visitSubTypeAttributeMappings, visitSuperTypeAttributeMappings
-
Methods inherited from interface org.hibernate.persister.entity.EntityPersister
addToCacheKey, afterInitialize, afterReassociate, breakDownJdbcValues, buildCacheEntry, canExtractIdOutOfEntity, canReadFromCache, canUseReferenceCacheEntries, canWriteToCache, createProxy, delete, findDirty, findModified, forceVersionIncrement, forceVersionIncrement, getAttributeMapping, getBytecodeEnhancementMetadata, getCacheAccessStrategy, getCacheEntryStructure, getClassMetadata, getConcreteProxyClass, getCurrentVersion, getDatabaseSnapshot, getEntityEntryFactory, getEntityMappingType, getEntityMetamodel, getEntityName, getFactory, getFilterAliasGenerator, getFilterAliasGenerator, getGenerator, getIdByUniqueKey, getIdentifier, getIdentifierGenerator, getIdentifierPropertyName, getIdentifierType, getInstrumentationMetadata, getMappedClass, getMultiNaturalIdLoader, getNaturalIdCacheAccessStrategy, getNaturalIdentifierProperties, getNaturalIdentifierSnapshot, getPropertyCascadeStyles, getPropertyCheckability, getPropertyInsertability, getPropertyLaziness, getPropertyNames, getPropertyNullability, getPropertySpaces, getPropertyType, getPropertyTypes, getPropertyUpdateability, getPropertyValue, getPropertyValue, getPropertyValues, getPropertyValuesToInsert, getPropertyVersionability, getQuerySpaces, getRepresentationStrategy, getRootEntityName, getSqlAliasStem, getSqmMultiTableInsertStrategy, getSqmMultiTableMutationStrategy, getSubclassEntityPersister, getSynchronizationSpaces, getSynchronizedQuerySpaces, getValue, getValues, getVersion, getVersionGenerator, getVersionJavaType, getVersionProperty, hasCache, hasCascadeDelete, hasCascades, hasCollectionNotReferencingPK, hasCollections, hasIdentifierProperty, hasInsertGeneratedProperties, hasLazyProperties, hasMutableProperties, hasNaturalIdCache, hasNaturalIdentifier, hasOwnedCollections, hasProxy, hasSubselectLoadableCollections, hasUninitializedLazyProperties, hasUpdateGeneratedProperties, implementsLifecycle, initializeEnhancedEntityUsedAsProxy, insert, insert, instantiate, isBatchLoadable, isCacheInvalidationRequired, isIdentifierAssignedByInsert, isInherited, isInstance, isInstrumented, isLazyPropertiesCacheable, isMutable, isPropertySelectable, isSelectBeforeUpdateRequired, isSubclassEntityName, isTransient, isVersioned, isVersionPropertyGenerated, load, load, load, load, loadByUniqueKey, loadEntityIdByNaturalId, lock, lock, multiLoad, postInstantiate, processInsertGeneratedProperties, processUpdateGeneratedProperties, resetIdentifier, resolveAttributeIndexes, resolveDirtyAttributeIndexes, setIdentifier, setPropertyValue, setPropertyValues, setValue, setValues, update, 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.JdbcMappingContainer
getJdbcMapping, getSingleJdbcMapping
-
Methods inherited from interface org.hibernate.persister.entity.Joinable
consumesCollectionAlias, consumesEntityAlias, getKeyColumnNames, getName, getTableName, isCollection
-
Methods inherited from interface org.hibernate.loader.ast.spi.Loadable
isAffectedByInfluencers, isNotAffectedByInfluencers
-
Methods inherited from interface org.hibernate.persister.entity.Loadable
getDiscriminatorAlias, getDiscriminatorColumnName, getDiscriminatorType, getDiscriminatorValue, getIdentifierAliases, getIdentifierColumnNames, getPropertyAliases, getPropertyColumnNames, getSubclassForDiscriminatorValue, getTableAliasForColumn, hasRowId, hasSubclasses, isAbstract, registerAffectingFetchProfile
-
Methods inherited from interface org.hibernate.persister.entity.Lockable
getRootTableAlias, getRootTableIdentifierColumnNames, getRootTableName, getVersionColumnName
-
Methods inherited from interface org.hibernate.metamodel.mapping.ManagedMappingType
anyRequiresAggregateColumnWriter, findAttributeMapping, forEachAttributeMapping, hasPartitionedSelectionMapping
-
Methods inherited from interface org.hibernate.metamodel.mapping.ModelPart
areEqual, asAttributeMapping, 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.persister.entity.OuterJoinLoadable
countSubclassProperties, fromTableFragment, getAttributeMutationTableName, getCascadeStyle, getEntityType, getFetchMode, getPropertyColumnNames, getPropertyTableName, getSubclassPropertyColumnNames, getSubclassPropertyName, getSubclassPropertyTableName, getSubclassPropertyType, isDefinedOnSubclass, isSubclassPropertyNullable, selectFragment, toColumns
-
Methods inherited from interface org.hibernate.reactive.persister.entity.impl.ReactiveEntityPersister
deleteReactive, insertReactive, insertReactive, reactiveLoad, reactiveLoad, reactiveLoad, reactiveLoadByUniqueKey, reactiveLoadByUniqueKey, reactiveLoadEntityIdByNaturalId, reactiveMultiLoad, reactiveProcessInsertGenerated, reactiveProcessUpdateGenerated, updateReactive
-
-
-
-
Field Detail
-
LOG
static final Log LOG
-
-
Method Detail
-
parameters
default Parameters parameters()
-
delegate
default org.hibernate.persister.entity.AbstractEntityPersister delegate()
A self-reference of typeAbstractEntityPersister
.- Returns:
- this object
-
getReactiveConnection
default ReactiveConnection getReactiveConnection(org.hibernate.engine.spi.SharedSessionContractImplementor session)
-
check
boolean check(int rows, java.lang.Object id, int tableNumber, org.hibernate.jdbc.Expectation expectation, java.sql.PreparedStatement statement, java.lang.String sql) throws org.hibernate.HibernateException
- Throws:
org.hibernate.HibernateException
-
generateSelectLockString
default java.lang.String generateSelectLockString(org.hibernate.LockOptions lockOptions)
-
generateUpdateLockString
default java.lang.String generateUpdateLockString(org.hibernate.LockOptions lockOptions)
-
reactiveLock
default java.util.concurrent.CompletionStage<java.lang.Void> reactiveLock(java.lang.Object id, java.lang.Object version, java.lang.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 interfaceReactiveEntityPersister
- Throws:
org.hibernate.HibernateException
-
getVersionType
org.hibernate.type.BasicType<?> getVersionType()
- Specified by:
getVersionType
in interfaceorg.hibernate.persister.entity.EntityPersister
- See Also:
AbstractEntityPersister.getVersionType()
-
nextVersionForLock
default java.lang.Object nextVersionForLock(org.hibernate.LockMode lockMode, java.lang.Object id, java.lang.Object currentVersion, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
- See Also:
AbstractEntityPersister.forceVersionIncrement(Object, Object, SharedSessionContractImplementor)
-
reactiveGetDatabaseSnapshot
default java.util.concurrent.CompletionStage<java.lang.Object[]> reactiveGetDatabaseSnapshot(java.lang.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 interfaceReactiveEntityPersister
- Returns:
- null if there is no row in the database
-
getReactiveSingleIdEntityLoader
ReactiveSingleIdEntityLoader<?> getReactiveSingleIdEntityLoader()
-
reactiveGetCurrentVersion
default java.util.concurrent.CompletionStage<java.lang.Object> reactiveGetCurrentVersion(java.lang.Object id, org.hibernate.engine.spi.SharedSessionContractImplementor session)
- Specified by:
reactiveGetCurrentVersion
in interfaceReactiveEntityPersister
- See Also:
AbstractEntityPersister.getCurrentVersion(Object, SharedSessionContractImplementor)
-
reactiveInitializeLazyProperty
default <E,T> java.util.concurrent.CompletionStage<T> reactiveInitializeLazyProperty(jakarta.persistence.metamodel.Attribute<E,T> field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
- Specified by:
reactiveInitializeLazyProperty
in interfaceReactiveEntityPersister
-
reactiveInitializeLazyProperty
default <E,T> java.util.concurrent.CompletionStage<T> reactiveInitializeLazyProperty(java.lang.String field, E entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
- Specified by:
reactiveInitializeLazyProperty
in interfaceReactiveEntityPersister
-
reactiveInitializeLazyPropertiesFromDatastore
default java.util.concurrent.CompletionStage<java.lang.Object> reactiveInitializeLazyPropertiesFromDatastore(java.lang.Object entity, java.lang.Object id, org.hibernate.engine.spi.EntityEntry entry, java.lang.String fieldName, org.hibernate.engine.spi.SharedSessionContractImplementor session)
-
initLazyProperty
default java.util.concurrent.CompletionStage<java.lang.Object> initLazyProperty(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session, org.hibernate.engine.spi.EntityEntry entry, org.hibernate.engine.spi.PersistentAttributeInterceptor interceptor, java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, java.util.Set<java.lang.String> initializedLazyAttributeNames, java.lang.Object[] values)
-
reactiveInitializeEnhancedEntityUsedAsProxy
default java.util.concurrent.CompletionStage<java.lang.Object> reactiveInitializeEnhancedEntityUsedAsProxy(java.lang.Object entity, java.lang.String nameOfAttributeBeingAccessed, org.hibernate.engine.spi.SharedSessionContractImplementor session)
- Specified by:
reactiveInitializeEnhancedEntityUsedAsProxy
in interfaceReactiveEntityPersister
-
initializeLazyProperty
boolean initializeLazyProperty(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.EntityEntry entry, int lazyIndex, java.lang.Object selectedValue)
-
initializeLazyProperty
java.lang.Object initializeLazyProperty(java.lang.String fieldName, java.lang.Object entity, org.hibernate.engine.spi.SharedSessionContractImplementor session)
-
getLazyPropertyColumnAliases
java.lang.String[][] getLazyPropertyColumnAliases()
-
reactiveGetSQLLazySelectLoadPlan
ReactiveSingleIdArrayLoadPlan reactiveGetSQLLazySelectLoadPlan(java.lang.String fetchGroup)
-
isBatchable
boolean isBatchable()
-
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 interfaceorg.hibernate.metamodel.mapping.EntityMappingType
- Specified by:
getNaturalIdLoader
in interfaceorg.hibernate.persister.entity.EntityPersister
-
getLazyLoadPlanByFetchGroup
default java.util.Map<java.lang.String,ReactiveSingleIdArrayLoadPlan> getLazyLoadPlanByFetchGroup(java.lang.String[] subclassPropertyNameClosure)
- See Also:
AbstractEntityPersister.getLazyLoadPlanByFetchGroup()
-
createLazyLoadPlanByFetchGroup
default java.util.Map<java.lang.String,ReactiveSingleIdArrayLoadPlan> createLazyLoadPlanByFetchGroup(org.hibernate.bytecode.spi.BytecodeEnhancementMetadata metadata, java.lang.String[] subclassPropertyNameClosure)
-
createLazyLoadPlan
default ReactiveSingleIdArrayLoadPlan createLazyLoadPlan(java.util.List<org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor> fetchGroupAttributeDescriptors, java.lang.String[] subclassPropertyNameClosure)
-
getSubclassPropertyIndex
default int getSubclassPropertyIndex(java.lang.String propertyName, java.lang.String[] subclassPropertyNameClosure)
-
-