Top Description Methods
org.hibernate.metamodel.mapping

public Interface EmbeddableValuedModelPart

extends ValuedModelPart, Fetchable, FetchableContainer, TableGroupJoinProducer
Known Direct Subinterfaces
org.hibernate.metamodel.mapping.CompositeIdentifierMapping, org.hibernate.sql.results.graph.embeddable.EmbeddableValuedFetchable
Known Direct Implementers
org.hibernate.query.derived.AnonymousTupleEmbeddableValuedModelPart
Imports
java.util.function.Consumer, org.hibernate.cache.MutableCacheKeyBuilder, org.hibernate.engine.spi.SharedSessionContractImplementor, org.hibernate.internal.util.IndexedConsumer, org.hibernate.property.access.spi.PropertyAccess, org.hibernate.query.sqm.sql.SqmToSqlAstConverter, org.hibernate.sql.ast.Clause, org.hibernate.sql.ast.spi.SqlAstCreationState, org.hibernate.sql.ast.tree.expression.SqlTuple, org.hibernate.sql.ast.tree.from.TableGroup, .TableGroupJoinProducer, org.hibernate.sql.results.graph.Fetchable, .FetchableContainer, org.hibernate.type.descriptor.java.JavaType

Describes the mapping of an embeddable (composite).
See Also
jakarta.persistence.Embedded, jakarta.persistence.EmbeddedId, jakarta.persistence.Embeddable

Method Summary

Modifier and TypeMethod and Description
public default void
addToCacheKey(MutableCacheKeyBuilder
the MutableCacheKey used to add the disassembled value and the hashCode
cacheKey
,
Object
the value to disassemble
value
,
SharedSessionContractImplementor
the SharedSessionContractImplementor
session
)

Implements org.hibernate.metamodel.mapping.Bindable.addToCacheKey, org.hibernate.type.descriptor.java.JavaTypedExpressible.addToCacheKey.

Add to the MutableCacheKey the values obtained disassembling the value and the hasCode generated from the disassembled value.
public default <X, Y> int
breakDownJdbcValues(Object domainValue, int offset, X x, Y y, ModelPart.JdbcValueBiConsumer<X, Y> valueConsumer, SharedSessionContractImplementor session)

Implements org.hibernate.metamodel.mapping.ModelPart.breakDownJdbcValues.

Breaks down the domain value to its constituent JDBC values.
public default <X, Y> int
decompose(Object domainValue, int offset, X x, Y y, ModelPart.JdbcValueBiConsumer<X, Y> valueConsumer, SharedSessionContractImplementor session)

Overrides default org.hibernate.metamodel.mapping.ModelPart.decompose.

Similar to breakDownJdbcValues(Object, int, Object, Object, JdbcValueBiConsumer, SharedSessionContractImplementor), but this method is supposed to be used for decomposing values for assignment expressions.
public default Object
disassemble(Object value, SharedSessionContractImplementor session)

Implements org.hibernate.metamodel.mapping.Bindable.disassemble.

Breaks down a value of J into its simple pieces.
public default ModelPart
public default <X, Y> int
public default void
public default int
forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)

Implements org.hibernate.metamodel.mapping.JdbcMappingContainer.forEachJdbcType.

Visit each JdbcMapping starting from the given offset
public default <X, Y> int
forEachJdbcValue(Object value, int offset, X x, Y y, Bindable.JdbcValuesBiConsumer<X, Y> valuesConsumer, SharedSessionContractImplementor session)

Overrides default org.hibernate.metamodel.mapping.Bindable.forEachJdbcValue.

Visit each constituent JDBC value extracted from the entity instance itself.
public default int
forEachSelectable(int offset, SelectableConsumer consumer)

Overrides default org.hibernate.metamodel.mapping.ValuedModelPart.forEachSelectable, org.hibernate.metamodel.mapping.ModelPart.forEachSelectable.

Visits each selectable mapping with the selectable index offset by the given value.
public default void
public default void
public EmbeddableMappingType
public default Fetchable
public default JavaType<?>
getJavaType()

Implements org.hibernate.metamodel.mapping.ModelPart.getJavaType.

The Java type for this part.
public default JdbcMapping
public default int
public default EmbeddableMappingType
getMappedType()

Implements org.hibernate.metamodel.mapping.ValueMapping.getMappedType.

Descriptor for the type of this mapping
public default int
public default PropertyAccess
public default SelectableMapping
getSelectable(int columnIndex)

Implements org.hibernate.metamodel.mapping.SelectableMappings.getSelectable.

Get the selectable at the given position
public default int
public default boolean
public SqlTuple
toSqlExpression(TableGroup tableGroup, Clause clause, SqmToSqlAstConverter walker, SqlAstCreationState sqlAstCreationState)

public default void
Inherited from org.hibernate.metamodel.mapping.ValuedModelPart:
forEachNonFormulaforEachSelectablegetContainingTableExpressiongetSingleJdbcMapping
Inherited from org.hibernate.sql.ast.tree.from.TableGroupJoinProducer:
createRootTableGroupJoincreateTableGroupJoindetermineSqlJoinTypegetDefaultSqlAstJoinTypeisSimpleJoinPredicate
Inherited from org.hibernate.sql.results.graph.Fetchable:
asAttributeMappinggenerateFetchgetFetchableKeygetFetchableNamegetMappedFetchOptionsincrementFetchDepthisSelectableresolveCircularFetch
Inherited from org.hibernate.sql.results.graph.FetchableContainer:
getKeyFetchablegetNumberOfFetchableKeysgetNumberOfKeyFetchablesvisitFetchablesvisitFetchablesvisitFetchablesvisitKeyFetchablesvisitKeyFetchablesvisitKeyFetchables

Method Detail

addToCacheKeyback to summary
public default void addToCacheKey(MutableCacheKeyBuilder cacheKey, Object value, SharedSessionContractImplementor session)

Implements org.hibernate.metamodel.mapping.Bindable.addToCacheKey, org.hibernate.type.descriptor.java.JavaTypedExpressible.addToCacheKey.

Doc from org.hibernate.metamodel.mapping.Bindable.addToCacheKey.

Add to the MutableCacheKey the values obtained disassembling the value and the hasCode generated from the disassembled value.

Parameters
cacheKey:MutableCacheKeyBuilder

the MutableCacheKey used to add the disassembled value and the hashCode

value:Object

the value to disassemble

session:SharedSessionContractImplementor

the SharedSessionContractImplementor

Annotations
@Override
breakDownJdbcValuesback to summary
public default <X, Y> int breakDownJdbcValues(Object domainValue, int offset, X x, Y y, ModelPart.JdbcValueBiConsumer<X, Y> valueConsumer, SharedSessionContractImplementor session)

Implements org.hibernate.metamodel.mapping.ModelPart.breakDownJdbcValues.

Doc from org.hibernate.metamodel.mapping.ModelPart.breakDownJdbcValues.

Breaks down the domain value to its constituent JDBC values. Think of it as breaking the multi-dimensional array into a visitable flat array. Additionally, it passes through the values X and Y to the consumer. Returns the amount of jdbc types that have been visited.

Annotations
@Override
decomposeback to summary
public default <X, Y> int decompose(Object domainValue, int offset, X x, Y y, ModelPart.JdbcValueBiConsumer<X, Y> valueConsumer, SharedSessionContractImplementor session)

Overrides default org.hibernate.metamodel.mapping.ModelPart.decompose.

Doc from org.hibernate.metamodel.mapping.ModelPart.decompose.

Similar to breakDownJdbcValues(Object, int, Object, Object, JdbcValueBiConsumer, SharedSessionContractImplementor), but this method is supposed to be used for decomposing values for assignment expressions. Returns the amount of jdbc types that have been visited.

Annotations
@Override
disassembleback to summary
public default Object disassemble(Object value, SharedSessionContractImplementor session)

Implements org.hibernate.metamodel.mapping.Bindable.disassemble.

Doc from org.hibernate.metamodel.mapping.Bindable.disassemble.

Breaks down a value of J into its simple pieces. E.g., an embedded value gets broken down into an array of its attribute state; a basic value converts to itself; etc.

Generally speaking, this is the form in which entity state is kept relative to a Session via EntityEntry.

@Entity class Person {
    @Id Integer id;
    @Embedded Name name;
    int age;
}

@Embeddable class Name {
    String familiarName;
    String familyName;
}

At the top level, we would want to disassemble a Person value, so we'd ask the Bindable for the Person entity to disassemble. Given a Person value:

Person( id=1, name=Name( 'Steve', 'Ebersole' ), 28 )

this disassemble would result in a multidimensional array:

[ ["Steve", "Ebersole"], 28 ]

Note that the identifier is not part of this disassembled state. Note also how the embedded value results in a sub-array.

Annotations
@Override
findSubPartback to summary
public default ModelPart findSubPart(String name, EntityMappingType treatTargetType)

Implements org.hibernate.metamodel.mapping.ModelPartContainer.findSubPart.

Annotations
@Override
forEachDisassembledJdbcValueback to summary
public default <X, Y> int forEachDisassembledJdbcValue(Object value, int offset, X x, Y y, Bindable.JdbcValuesBiConsumer<X, Y> valuesConsumer, SharedSessionContractImplementor session)

Implements org.hibernate.metamodel.mapping.Bindable.forEachDisassembledJdbcValue.

Doc from org.hibernate.metamodel.mapping.Bindable.forEachDisassembledJdbcValue.

Like forEachDisassembledJdbcValue(Object, Object, Object, JdbcValuesBiConsumer, SharedSessionContractImplementor), but additionally receives an offset by which the selectionIndex is incremented when calling JdbcValuesBiConsumer#consume(int, Object, Object, Object, JdbcMapping).

Annotations
@Override
forEachInsertableback to summary
public default void forEachInsertable(SelectableConsumer consumer)

Overrides default org.hibernate.metamodel.mapping.ValuedModelPart.forEachInsertable.

Annotations
@Override
forEachJdbcTypeback to summary
public default int forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)

Implements org.hibernate.metamodel.mapping.JdbcMappingContainer.forEachJdbcType.

Doc from org.hibernate.metamodel.mapping.JdbcMappingContainer.forEachJdbcType.

Visit each JdbcMapping starting from the given offset

Annotations
@Override
forEachJdbcValueback to summary
public default <X, Y> int forEachJdbcValue(Object value, int offset, X x, Y y, Bindable.JdbcValuesBiConsumer<X, Y> valuesConsumer, SharedSessionContractImplementor session)

Overrides default org.hibernate.metamodel.mapping.Bindable.forEachJdbcValue.

Doc from org.hibernate.metamodel.mapping.Bindable.forEachJdbcValue.

Visit each constituent JDBC value extracted from the entity instance itself. Short-hand form of calling disassemble and piping its result to forEachDisassembledJdbcValue(Object, int, JdbcValuesConsumer, SharedSessionContractImplementor)

Annotations
@Override
forEachSelectableback to summary
public default int forEachSelectable(int offset, SelectableConsumer consumer)

Overrides default org.hibernate.metamodel.mapping.ValuedModelPart.forEachSelectable, org.hibernate.metamodel.mapping.ModelPart.forEachSelectable.

Doc from org.hibernate.metamodel.mapping.ModelPart.forEachSelectable.

Visits each selectable mapping with the selectable index offset by the given value. Returns the amount of jdbc types that have been visited.

Annotations
@Override
forEachSubPartback to summary
public default void forEachSubPart(IndexedConsumer<ModelPart> consumer, EntityMappingType treatTarget)

Implements org.hibernate.metamodel.mapping.ModelPartContainer.forEachSubPart.

Annotations
@Override
forEachUpdatableback to summary
public default void forEachUpdatable(SelectableConsumer consumer)

Overrides default org.hibernate.metamodel.mapping.ValuedModelPart.forEachUpdatable.

Annotations
@Override
getEmbeddableTypeDescriptorback to summary
public EmbeddableMappingType getEmbeddableTypeDescriptor()
getFetchableback to summary
public default Fetchable getFetchable(int position)

Overrides default org.hibernate.sql.results.graph.FetchableContainer.getFetchable.

Annotations
@Override
getJavaTypeback to summary
public default JavaType<?> getJavaType()

Implements org.hibernate.metamodel.mapping.ModelPart.getJavaType.

Doc from org.hibernate.metamodel.mapping.ModelPart.getJavaType.

The Java type for this part. Generally equivalent to MappingType#getMappedJavaType() relative to getPartMappingType()

Annotations
@Override
getJdbcMappingback to summary
public default JdbcMapping getJdbcMapping(int index)

Implements org.hibernate.metamodel.mapping.JdbcMappingContainer.getJdbcMapping.

Annotations
@Override
getJdbcTypeCountback to summary
public default int getJdbcTypeCount()

Overrides default org.hibernate.metamodel.mapping.ValuedModelPart.getJdbcTypeCount, org.hibernate.metamodel.mapping.Bindable.getJdbcTypeCount.

Doc from org.hibernate.metamodel.mapping.SelectableMappings.getJdbcTypeCount.

The number of selectables

Annotations
@Override
getMappedTypeback to summary
public default EmbeddableMappingType getMappedType()

Implements org.hibernate.metamodel.mapping.ValueMapping.getMappedType.

Doc from org.hibernate.metamodel.mapping.ValueMapping.getMappedType.

Descriptor for the type of this mapping

Annotations
@Override
getNumberOfFetchablesback to summary
public default int getNumberOfFetchables()

Implements org.hibernate.sql.results.graph.FetchableContainer.getNumberOfFetchables.

Doc from org.hibernate.sql.results.graph.FetchableContainer.getNumberOfFetchables.

The number of fetchables in the container

Annotations
@Override
getParentInjectionAttributePropertyAccessback to summary
public default PropertyAccess getParentInjectionAttributePropertyAccess()
See Also
org.hibernate.annotations.Parent
getSelectableback to summary
public default SelectableMapping getSelectable(int columnIndex)

Implements org.hibernate.metamodel.mapping.SelectableMappings.getSelectable.

Doc from org.hibernate.metamodel.mapping.SelectableMappings.getSelectable.

Get the selectable at the given position

Annotations
@Override
getSelectableIndexback to summary
public default int getSelectableIndex(String selectableName)

Overrides default org.hibernate.sql.results.graph.FetchableContainer.getSelectableIndex.

Annotations
@Override
hasPartitionedSelectionMappingback to summary
public default boolean hasPartitionedSelectionMapping()

Implements org.hibernate.metamodel.mapping.ModelPart.hasPartitionedSelectionMapping.

Annotations
@Override
toSqlExpressionback to summary
public SqlTuple toSqlExpression(TableGroup tableGroup, Clause clause, SqmToSqlAstConverter walker, SqlAstCreationState sqlAstCreationState)
visitSubPartsback to summary
public default void visitSubParts(Consumer<ModelPart> consumer, EntityMappingType treatTargetType)

Implements org.hibernate.metamodel.mapping.ModelPartContainer.visitSubParts.

Annotations
@Override