Class SimpleNaturalIdMapping
- java.lang.Object
-
- org.hibernate.metamodel.mapping.internal.AbstractNaturalIdMapping
-
- org.hibernate.metamodel.mapping.internal.SimpleNaturalIdMapping
-
- All Implemented Interfaces:
Bindable
,JdbcMappingContainer
,MappingModelExpressible
,ModelPart
,NaturalIdMapping
,VirtualModelPart
,JavaType.CoercionContext
public class SimpleNaturalIdMapping extends AbstractNaturalIdMapping implements JavaType.CoercionContext
Single-attribute NaturalIdMapping implementation
-
-
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.ModelPart
ModelPart.JdbcValueConsumer
-
-
Field Summary
-
Fields inherited from interface org.hibernate.metamodel.mapping.NaturalIdMapping
PART_NAME
-
-
Constructor Summary
Constructors Constructor Description SimpleNaturalIdMapping(SingularAttributeMapping attribute, EntityMappingType declaringType, MappingModelCreationProcess creationProcess)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
applySqlSelections(NavigablePath navigablePath, TableGroup tableGroup, DomainResultCreationState creationState)
Apply SQL selections for a specific reference to this ModelPart outside the domain query's root select clause.void
applySqlSelections(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.void
breakDownJdbcValues(Object domainValue, ModelPart.JdbcValueConsumer valueConsumer, SharedSessionContractImplementor session)
int
calculateHashCode(Object value, SharedSessionContractImplementor session)
Calculate the hash-code of a natural-id value<T> DomainResult<T>
createDomainResult(NavigablePath navigablePath, TableGroup tableGroup, String resultVariable, DomainResultCreationState creationState)
Create a DomainResult for a specific reference to this ModelPart.Object
disassemble(Object value, SharedSessionContractImplementor session)
Object
extractNaturalIdFromEntity(Object entity, SharedSessionContractImplementor session)
Given an entity instance, extract the normalized natural id representationObject
extractNaturalIdFromEntityState(Object[] state, SharedSessionContractImplementor session)
Given an array of "full entity state", extract the normalized natural id representationint
forEachDisassembledJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
int
forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)
Visit each JdbcMapping starting from the given offsetint
forEachJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
int
forEachSelectable(int offset, SelectableConsumer consumer)
SingularAttributeMapping
getAttribute()
JavaType<?>
getJavaType()
List<JdbcMapping>
getJdbcMappings()
The list of JDBC mappingsint
getJdbcTypeCount()
The number of JDBC mappingsList<SingularAttributeMapping>
getNaturalIdAttributes()
The attribute(s) making up the natural-id.MappingType
getPartMappingType()
TypeConfiguration
getTypeConfiguration()
NaturalIdLoader<?>
makeLoader(EntityMappingType entityDescriptor)
Make a loader capable of loading a single entity by natural-idMultiNaturalIdLoader<?>
makeMultiLoader(EntityMappingType entityDescriptor)
Make a loader capable of loading multiple entities by natural-idObject
normalizeIncomingValue(Object naturalIdToLoad)
Object
normalizeInput(Object incoming, SharedSessionContractImplementor session)
Normalize a user-provided natural-id value into the representation Hibernate uses internallyvoid
validateInternalForm(Object naturalIdValue, SharedSessionContractImplementor session)
Validates a natural id value(s) for the described natural-id based on the expected internal representationvoid
verifyFlushState(Object id, Object[] currentState, Object[] loadedState, SharedSessionContractImplementor session)
Verify the natural-id value(s) we are about to flush to the database-
Methods inherited from class org.hibernate.metamodel.mapping.internal.AbstractNaturalIdMapping
findContainingEntityMapping, getCacheAccess, getDeclaringType, getNavigableRole, isMutable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.metamodel.mapping.Bindable
forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue
-
Methods inherited from interface org.hibernate.metamodel.mapping.ModelPart
areEqual, asAttributeMapping, forEachSelectable
-
Methods inherited from interface org.hibernate.metamodel.mapping.NaturalIdMapping
getPartName
-
-
-
-
Constructor Detail
-
SimpleNaturalIdMapping
public SimpleNaturalIdMapping(SingularAttributeMapping attribute, EntityMappingType declaringType, MappingModelCreationProcess creationProcess)
-
-
Method Detail
-
verifyFlushState
public void verifyFlushState(Object id, Object[] currentState, Object[] loadedState, SharedSessionContractImplementor session)
Description copied from interface:NaturalIdMapping
Verify the natural-id value(s) we are about to flush to the database- Specified by:
verifyFlushState
in interfaceNaturalIdMapping
-
extractNaturalIdFromEntityState
public Object extractNaturalIdFromEntityState(Object[] state, SharedSessionContractImplementor session)
Description copied from interface:NaturalIdMapping
Given an array of "full entity state", extract the normalized natural id representation- Specified by:
extractNaturalIdFromEntityState
in interfaceNaturalIdMapping
- Parameters:
state
- The attribute state array- Returns:
- The extracted natural id values. This is a normalized
-
extractNaturalIdFromEntity
public Object extractNaturalIdFromEntity(Object entity, SharedSessionContractImplementor session)
Description copied from interface:NaturalIdMapping
Given an entity instance, extract the normalized natural id representation- Specified by:
extractNaturalIdFromEntity
in interfaceNaturalIdMapping
- Parameters:
entity
- The entity instance- Returns:
- The extracted natural id values
-
validateInternalForm
public void validateInternalForm(Object naturalIdValue, SharedSessionContractImplementor session)
Description copied from interface:NaturalIdMapping
Validates a natural id value(s) for the described natural-id based on the expected internal representation- Specified by:
validateInternalForm
in interfaceNaturalIdMapping
-
calculateHashCode
public int calculateHashCode(Object value, SharedSessionContractImplementor session)
Description copied from interface:NaturalIdMapping
Calculate the hash-code of a natural-id value- Specified by:
calculateHashCode
in interfaceNaturalIdMapping
- Parameters:
value
- The natural-id value- Returns:
- The hash-code
-
normalizeInput
public Object normalizeInput(Object incoming, SharedSessionContractImplementor session)
Description copied from interface:NaturalIdMapping
Normalize a user-provided natural-id value into the representation Hibernate uses internally- Specified by:
normalizeInput
in interfaceNaturalIdMapping
- Parameters:
incoming
- The user-supplied value- Returns:
- The normalized, internal representation
-
getAttribute
public SingularAttributeMapping getAttribute()
-
getNaturalIdAttributes
public List<SingularAttributeMapping> getNaturalIdAttributes()
Description copied from interface:NaturalIdMapping
The attribute(s) making up the natural-id.- Specified by:
getNaturalIdAttributes
in interfaceNaturalIdMapping
-
getPartMappingType
public MappingType getPartMappingType()
- Specified by:
getPartMappingType
in interfaceModelPart
-
getJavaType
public JavaType<?> getJavaType()
- Specified by:
getJavaType
in interfaceModelPart
-
createDomainResult
public <T> DomainResult<T> createDomainResult(NavigablePath navigablePath, TableGroup tableGroup, String resultVariable, DomainResultCreationState creationState)
Description copied from interface:ModelPart
Create a DomainResult for a specific reference to this ModelPart.- Specified by:
createDomainResult
in interfaceModelPart
-
applySqlSelections
public void applySqlSelections(NavigablePath navigablePath, TableGroup tableGroup, DomainResultCreationState creationState)
Description copied from interface:ModelPart
Apply SQL selections for a specific reference to this ModelPart outside the domain query's root select clause.- Specified by:
applySqlSelections
in interfaceModelPart
-
applySqlSelections
public void applySqlSelections(NavigablePath navigablePath, TableGroup tableGroup, DomainResultCreationState creationState, BiConsumer<SqlSelection,JdbcMapping> selectionConsumer)
Description copied from interface:ModelPart
Apply SQL selections for a specific reference to this ModelPart outside the domain query's root select clause.- Specified by:
applySqlSelections
in interfaceModelPart
-
forEachSelectable
public int forEachSelectable(int offset, SelectableConsumer consumer)
- Specified by:
forEachSelectable
in interfaceModelPart
-
getJdbcTypeCount
public int getJdbcTypeCount()
Description copied from interface:Bindable
The number of JDBC mappings- Specified by:
getJdbcTypeCount
in interfaceBindable
- Specified by:
getJdbcTypeCount
in interfaceJdbcMappingContainer
-
getJdbcMappings
public List<JdbcMapping> getJdbcMappings()
Description copied from interface:Bindable
The list of JDBC mappings- Specified by:
getJdbcMappings
in interfaceBindable
- Specified by:
getJdbcMappings
in interfaceJdbcMappingContainer
-
forEachJdbcType
public int forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)
Description copied from interface:JdbcMappingContainer
Visit each JdbcMapping starting from the given offset- Specified by:
forEachJdbcType
in interfaceJdbcMappingContainer
-
disassemble
public Object disassemble(Object value, SharedSessionContractImplementor session)
- Specified by:
disassemble
in interfaceBindable
- See Also:
As an example, consider the following domain model: ````
-
breakDownJdbcValues
public void breakDownJdbcValues(Object domainValue, ModelPart.JdbcValueConsumer valueConsumer, SharedSessionContractImplementor session)
- Specified by:
breakDownJdbcValues
in interfaceModelPart
-
forEachDisassembledJdbcValue
public int forEachDisassembledJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
- Specified by:
forEachDisassembledJdbcValue
in interfaceBindable
-
forEachJdbcValue
public int forEachJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
- Specified by:
forEachJdbcValue
in interfaceBindable
-
makeLoader
public NaturalIdLoader<?> makeLoader(EntityMappingType entityDescriptor)
Description copied from interface:NaturalIdMapping
Make a loader capable of loading a single entity by natural-id- Specified by:
makeLoader
in interfaceNaturalIdMapping
-
makeMultiLoader
public MultiNaturalIdLoader<?> makeMultiLoader(EntityMappingType entityDescriptor)
Description copied from interface:NaturalIdMapping
Make a loader capable of loading multiple entities by natural-id- Specified by:
makeMultiLoader
in interfaceNaturalIdMapping
-
getTypeConfiguration
public TypeConfiguration getTypeConfiguration()
- Specified by:
getTypeConfiguration
in interfaceJavaType.CoercionContext
-
-