Class BasicEntityIdentifierMappingImpl
- java.lang.Object
-
- org.hibernate.metamodel.mapping.internal.BasicEntityIdentifierMappingImpl
-
- All Implemented Interfaces:
BasicEntityIdentifierMapping,BasicValuedMapping,BasicValuedModelPart,Bindable,EntityIdentifierMapping,SingleAttributeIdentifierMapping,JdbcMappingContainer,MappingModelExpressible,ModelPart,PropertyBasedMapping,SelectableMapping,SelectableMappings,SqlExpressible,SqlTypedMapping,ValuedModelPart,ValueMapping,Fetchable,FetchOptions,FetchStyleAccess,FetchTimingAccess,JavaTypedExpressible
public class BasicEntityIdentifierMappingImpl extends Object implements BasicEntityIdentifierMapping, FetchOptions
Mapping of a simple identifier- See Also:
Id
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.Bindable
Bindable.JdbcValuesConsumer
-
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.EntityIdentifierMapping
EntityIdentifierMapping.Nature
-
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.ModelPart
ModelPart.IndexedJdbcValueConsumer, ModelPart.JdbcValueConsumer
-
-
Field Summary
-
Fields inherited from interface org.hibernate.metamodel.mapping.EntityIdentifierMapping
ROLE_LOCAL_NAME
-
-
Constructor Summary
Constructors Constructor Description BasicEntityIdentifierMappingImpl(EntityPersister entityPersister, Supplier<?> instanceCreator, String attributeName, String rootTable, String pkColumnName, String columnDefinition, Long length, Integer precision, Integer scale, boolean insertable, boolean updateable, BasicType<?> idType, MappingModelCreationProcess creationProcess)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidapplySqlSelections(NavigablePath navigablePath, TableGroup tableGroup, DomainResultCreationState creationState)Apply SQL selections for a specific reference to this ModelPart outside the domain query's root select clause.voidapplySqlSelections(NavigablePath navigablePath, TableGroup tableGroup, DomainResultCreationState creationState, BiConsumer<SqlSelection,JdbcMapping> selectionConsumer)Apply SQL selections for a specific reference to this ModelPart outside the domain query's root select clause.voidbreakDownJdbcValues(Object domainValue, ModelPart.JdbcValueConsumer valueConsumer, SharedSessionContractImplementor session)<T> DomainResult<T>createDomainResult(NavigablePath navigablePath, TableGroup tableGroup, String resultVariable, DomainResultCreationState creationState)Create a DomainResult for a specific reference to this ModelPart.Objectdisassemble(Object value, SharedSessionContractImplementor session)EntityMappingTypefindContainingEntityMapping()intforEachDisassembledJdbcValue(Object value, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)intforEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)Visit each JdbcMapping starting from the given offsetintforEachSelectable(int offset, SelectableConsumer consumer)Visit each contained selectable mapping.FetchgenerateFetch(FetchParent fetchParent, NavigablePath fetchablePath, FetchTiming fetchTiming, boolean selected, String resultVariable, DomainResultCreationState creationState)Generates a Fetch of this fetchableStringgetAttributeName()The name of the attribute defining the id, if oneStringgetColumnDefinition()StringgetContainingTableExpression()The table which contains the columns mapped by this valueStringgetCustomReadExpression()The selection's read expression accounting for formula treatment as well asColumnTransformer.read()StringgetCustomWriteExpression()The selection's write expression accountingColumnTransformer.write()StringgetFetchableName()The name of the fetchable.ObjectgetIdentifier(Object entity)Extract the identifier from an instance of the entityJavaType<?>getJavaType()The Java type for this part.JdbcMappinggetJdbcMapping()Anything that is expressible at the SQL AST level would be of basic type.LonggetLength()FetchOptionsgetMappedFetchOptions()The configured fetch timing and styleMappingTypegetMappedType()Descriptor for the type of this mappingEntityIdentifierMapping.NaturegetNature()NavigableRolegetNavigableRole()MappingTypegetPartMappingType()The type for this part.IntegergetPrecision()PropertyAccessgetPropertyAccess()Access to the identifier attribute's PropertyAccessIntegergetScale()StringgetSelectionExpression()The selection's expression.FetchStylegetStyle()FetchTiminggetTiming()IdentifierValuegetUnsavedStrategy()The strategy for distinguishing between detached and transient state based on the identifier mappingbooleanhasPartitionedSelectionMapping()Objectinstantiate()Instantiate an instance of the identifier.booleanisFormula()Is the mapping a formula instead of a physical column?booleanisInsertable()booleanisNullable()Is the mapping considered nullable?booleanisPartitioned()booleanisUpdateable()voidsetIdentifier(Object entity, Object id, SharedSessionContractImplementor session)Inject an identifier value into an instance of the entityStringtoString()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.hibernate.metamodel.mapping.BasicEntityIdentifierMapping
getFetchableKey
-
Methods inherited from interface org.hibernate.metamodel.mapping.BasicValuedModelPart
forEachSelectable, getJdbcMappings, getJdbcTypeCount, getSelectable
-
Methods inherited from interface org.hibernate.metamodel.mapping.Bindable
forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachJdbcValue
-
Methods inherited from interface org.hibernate.metamodel.mapping.EntityIdentifierMapping
getIdentifierIfNotUnsaved, getPartName
-
Methods inherited from interface org.hibernate.sql.results.graph.Fetchable
asAttributeMapping, incrementFetchDepth, resolveCircularFetch
-
Methods inherited from interface org.hibernate.metamodel.mapping.ModelPart
areEqual, decompose, isVirtual
-
Methods inherited from interface org.hibernate.metamodel.mapping.SelectableMapping
getSelectableName, getSelectablePath, getWriteExpression
-
Methods inherited from interface org.hibernate.metamodel.mapping.ValuedModelPart
forEachInsertable, forEachUpdatable, getJdbcMappings, getJdbcTypeCount
-
Methods inherited from interface org.hibernate.metamodel.mapping.ValueMapping
getExpressibleJavaType, treatAs
-
-
-
-
Constructor Detail
-
BasicEntityIdentifierMappingImpl
public BasicEntityIdentifierMappingImpl(EntityPersister entityPersister, Supplier<?> instanceCreator, String attributeName, String rootTable, String pkColumnName, String columnDefinition, Long length, Integer precision, Integer scale, boolean insertable, boolean updateable, BasicType<?> idType, MappingModelCreationProcess creationProcess)
-
-
Method Detail
-
getPropertyAccess
public PropertyAccess getPropertyAccess()
Description copied from interface:SingleAttributeIdentifierMappingAccess to the identifier attribute's PropertyAccess- Specified by:
getPropertyAccessin interfacePropertyBasedMapping- Specified by:
getPropertyAccessin interfaceSingleAttributeIdentifierMapping
-
getAttributeName
public String getAttributeName()
Description copied from interface:EntityIdentifierMappingThe name of the attribute defining the id, if one- Specified by:
getAttributeNamein interfaceEntityIdentifierMapping- Specified by:
getAttributeNamein interfaceSingleAttributeIdentifierMapping
-
getNature
public EntityIdentifierMapping.Nature getNature()
- Specified by:
getNaturein interfaceEntityIdentifierMapping- See Also:
EntityIdentifierMapping.Nature
-
getUnsavedStrategy
public IdentifierValue getUnsavedStrategy()
Description copied from interface:EntityIdentifierMappingThe strategy for distinguishing between detached and transient state based on the identifier mapping- Specified by:
getUnsavedStrategyin interfaceEntityIdentifierMapping- See Also:
EntityVersionMapping.getUnsavedStrategy()
-
getIdentifier
public Object getIdentifier(Object entity)
Description copied from interface:EntityIdentifierMappingExtract the identifier from an instance of the entity- Specified by:
getIdentifierin interfaceEntityIdentifierMapping
-
setIdentifier
public void setIdentifier(Object entity, Object id, SharedSessionContractImplementor session)
Description copied from interface:EntityIdentifierMappingInject an identifier value into an instance of the entity- Specified by:
setIdentifierin interfaceEntityIdentifierMapping
-
instantiate
public Object instantiate()
Description copied from interface:EntityIdentifierMappingInstantiate an instance of the identifier.- Specified by:
instantiatein interfaceEntityIdentifierMapping
-
getPartMappingType
public MappingType getPartMappingType()
Description copied from interface:ModelPartThe type for this part.- Specified by:
getPartMappingTypein interfaceBasicValuedModelPart- Specified by:
getPartMappingTypein interfaceModelPart
-
getMappedType
public MappingType getMappedType()
Description copied from interface:ValueMappingDescriptor for the type of this mapping- Specified by:
getMappedTypein interfaceValueMapping
-
forEachSelectable
public int forEachSelectable(int offset, SelectableConsumer consumer)Description copied from interface:SelectableMappingsVisit each contained selectable mapping. As the selectables are iterated, we call `SelectionConsumer` passing along `offset` + our current iteration index. The return is the number of selectables we directly contain- Specified by:
forEachSelectablein interfaceBasicValuedModelPart- Specified by:
forEachSelectablein interfaceModelPart- Specified by:
forEachSelectablein interfaceSelectableMappings- Specified by:
forEachSelectablein interfaceValuedModelPart- See Also:
SelectableConsumer.accept(int, SelectableMapping)
-
breakDownJdbcValues
public void breakDownJdbcValues(Object domainValue, ModelPart.JdbcValueConsumer valueConsumer, SharedSessionContractImplementor session)
- Specified by:
breakDownJdbcValuesin interfaceModelPart
-
findContainingEntityMapping
public EntityMappingType findContainingEntityMapping()
- Specified by:
findContainingEntityMappingin interfaceModelPart
-
forEachJdbcType
public int forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)Description copied from interface:JdbcMappingContainerVisit each JdbcMapping starting from the given offset- Specified by:
forEachJdbcTypein interfaceJdbcMappingContainer
-
getJavaType
public JavaType<?> getJavaType()
Description copied from interface:ModelPartThe Java type for this part. Generally equivalent toMappingType.getMappedJavaType()relative toModelPart.getPartMappingType()- Specified by:
getJavaTypein interfaceModelPart
-
getNavigableRole
public NavigableRole getNavigableRole()
- Specified by:
getNavigableRolein interfaceModelPart- See Also:
ModelPart.getPartName()
-
createDomainResult
public <T> DomainResult<T> createDomainResult(NavigablePath navigablePath, TableGroup tableGroup, String resultVariable, DomainResultCreationState creationState)
Description copied from interface:ModelPartCreate a DomainResult for a specific reference to this ModelPart.- Specified by:
createDomainResultin interfaceModelPart
-
applySqlSelections
public void applySqlSelections(NavigablePath navigablePath, TableGroup tableGroup, DomainResultCreationState creationState)
Description copied from interface:ModelPartApply SQL selections for a specific reference to this ModelPart outside the domain query's root select clause.- Specified by:
applySqlSelectionsin interfaceModelPart
-
applySqlSelections
public void applySqlSelections(NavigablePath navigablePath, TableGroup tableGroup, DomainResultCreationState creationState, BiConsumer<SqlSelection,JdbcMapping> selectionConsumer)
Description copied from interface:ModelPartApply SQL selections for a specific reference to this ModelPart outside the domain query's root select clause.- Specified by:
applySqlSelectionsin interfaceModelPart
-
getContainingTableExpression
public String getContainingTableExpression()
Description copied from interface:ValuedModelPartThe table which contains the columns mapped by this value- Specified by:
getContainingTableExpressionin interfaceSelectableMapping- Specified by:
getContainingTableExpressionin interfaceValuedModelPart
-
getSelectionExpression
public String getSelectionExpression()
Description copied from interface:SelectableMappingThe selection's expression. This is the column name or formula- Specified by:
getSelectionExpressionin interfaceSelectableMapping
-
isFormula
public boolean isFormula()
Description copied from interface:SelectableMappingIs the mapping a formula instead of a physical column?- Specified by:
isFormulain interfaceSelectableMapping
-
isNullable
public boolean isNullable()
Description copied from interface:SelectableMappingIs the mapping considered nullable?- Specified by:
isNullablein interfaceSelectableMapping
-
isInsertable
public boolean isInsertable()
- Specified by:
isInsertablein interfaceSelectableMapping
-
isUpdateable
public boolean isUpdateable()
- Specified by:
isUpdateablein interfaceSelectableMapping
-
isPartitioned
public boolean isPartitioned()
- Specified by:
isPartitionedin interfaceSelectableMapping
-
hasPartitionedSelectionMapping
public boolean hasPartitionedSelectionMapping()
- Specified by:
hasPartitionedSelectionMappingin interfaceBasicValuedModelPart- Specified by:
hasPartitionedSelectionMappingin interfaceModelPart
-
getCustomReadExpression
public String getCustomReadExpression()
Description copied from interface:SelectableMappingThe selection's read expression accounting for formula treatment as well asColumnTransformer.read()- Specified by:
getCustomReadExpressionin interfaceSelectableMapping
-
getCustomWriteExpression
public String getCustomWriteExpression()
Description copied from interface:SelectableMappingThe selection's write expression accountingColumnTransformer.write()- Specified by:
getCustomWriteExpressionin interfaceSelectableMapping
-
getColumnDefinition
public String getColumnDefinition()
- Specified by:
getColumnDefinitionin interfaceSqlTypedMapping
-
getLength
public Long getLength()
- Specified by:
getLengthin interfaceSqlTypedMapping
-
getPrecision
public Integer getPrecision()
- Specified by:
getPrecisionin interfaceSqlTypedMapping
-
getScale
public Integer getScale()
- Specified by:
getScalein interfaceSqlTypedMapping
-
getJdbcMapping
public JdbcMapping getJdbcMapping()
Description copied from interface:SqlExpressibleAnything that is expressible at the SQL AST level would be of basic type.- Specified by:
getJdbcMappingin interfaceBasicValuedMapping- Specified by:
getJdbcMappingin interfaceSqlExpressible- Specified by:
getJdbcMappingin interfaceSqlTypedMapping
-
getFetchableName
public String getFetchableName()
Description copied from interface:FetchableThe name of the fetchable. This is the part's "local name".- Specified by:
getFetchableNamein interfaceFetchable- See Also:
ModelPart.getNavigableRole(),NavigableRole.getLocalName()
-
getMappedFetchOptions
public FetchOptions getMappedFetchOptions()
Description copied from interface:FetchableThe configured fetch timing and style- Specified by:
getMappedFetchOptionsin interfaceFetchable
-
disassemble
public Object disassemble(Object value, SharedSessionContractImplementor session)
- Specified by:
disassemblein interfaceBindable- See Also:
As an example, consider the following domain model: ````
-
forEachDisassembledJdbcValue
public int forEachDisassembledJdbcValue(Object value, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
- Specified by:
forEachDisassembledJdbcValuein interfaceBindable
-
generateFetch
public Fetch generateFetch(FetchParent fetchParent, NavigablePath fetchablePath, FetchTiming fetchTiming, boolean selected, String resultVariable, DomainResultCreationState creationState)
Description copied from interface:FetchableGenerates a Fetch of this fetchable- Specified by:
generateFetchin interfaceFetchable- Parameters:
fetchParent- The parent of the Fetch we are generatingfetchablePath- The overall path within the graphfetchTiming- The requested fetch timing
-
getStyle
public FetchStyle getStyle()
- Specified by:
getStylein interfaceFetchStyleAccess
-
getTiming
public FetchTiming getTiming()
- Specified by:
getTimingin interfaceFetchTimingAccess
-
-