Class ComponentPropertyHolder
- java.lang.Object
-
- org.hibernate.boot.model.internal.AbstractPropertyHolder
-
- org.hibernate.boot.model.internal.ComponentPropertyHolder
-
- All Implemented Interfaces:
PropertyHolder
public class ComponentPropertyHolder extends AbstractPropertyHolder
PropertyHolder
for composites (Embeddable/Embedded).To facilitate code comments, I'll often refer to this example:
@Embeddable @Convert( attributeName="city", ... ) class Address { ... @Convert(...) public String city; } @Entity @Convert( attributeName="homeAddress.city", ... ) class Person { ... @Embedded @Convert( attributeName="city", ... ) public Address homeAddress; }
As you can see, lots of ways to specify the conversion for embeddable attributes :(
-
-
Field Summary
-
Fields inherited from class org.hibernate.boot.model.internal.AbstractPropertyHolder
parent
-
-
Constructor Summary
Constructors Constructor Description ComponentPropertyHolder(Component component, String path, PropertyData inferredData, PropertyHolder parent, MetadataBuildingContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Join
addJoin(JoinTable joinTableAnn, boolean noDelayInPkColumnCreation)
void
addProperty(Property prop, org.hibernate.annotations.common.reflection.XClass declaringClass)
void
addProperty(Property property, AnnotatedColumns columns, org.hibernate.annotations.common.reflection.XClass declaringClass)
String
getClassName()
String
getEntityName()
String
getEntityOwnerClassName()
KeyValue
getIdentifier()
Column[]
getOverriddenColumn(String propertyName)
Get column overriding, property first, then parent, then holder replace the placeholder 'collection&&element' with nothingJoinColumn[]
getOverriddenJoinColumn(String propertyName)
Get column overriding, property first, then parent, then holder replace the placeholder 'collection&&element' with nothing These rules are here to support both JPA 2 and legacy overriding rules.PersistentClass
getPersistentClass()
Table
getTable()
boolean
isComponent()
boolean
isEntity()
boolean
isOrWithinEmbeddedId()
Return true if this component is or is embedded in a @EmbeddedIdboolean
isWithinElementCollection()
Return true if this component is within an @ElementCollection.protected AttributeConversionInfo
locateAttributeConversionInfo(String path)
protected AttributeConversionInfo
locateAttributeConversionInfo(org.hibernate.annotations.common.reflection.XProperty property)
protected String
normalizeCompositePath(String attributeName)
protected String
normalizeCompositePathForLogging(String attributeName)
void
setParentProperty(String parentProperty)
void
startingProperty(org.hibernate.annotations.common.reflection.XProperty property)
Called during binding to allow the PropertyHolder to inspect its discovered properties.String
toString()
-
Methods inherited from class org.hibernate.boot.model.internal.AbstractPropertyHolder
buildExceptionFromInstantiationError, getContext, getJoinTable, getOverriddenColumnTransformer, getOverriddenForeignKey, getOverriddenJoinTable, getPath, isInIdClass, makeAttributeConverterDescriptor, resolveAttributeConverterDescriptor, setCurrentProperty, setInIdClass
-
-
-
-
Constructor Detail
-
ComponentPropertyHolder
public ComponentPropertyHolder(Component component, String path, PropertyData inferredData, PropertyHolder parent, MetadataBuildingContext context)
-
-
Method Detail
-
normalizeCompositePath
protected String normalizeCompositePath(String attributeName)
- Specified by:
normalizeCompositePath
in classAbstractPropertyHolder
-
normalizeCompositePathForLogging
protected String normalizeCompositePathForLogging(String attributeName)
- Specified by:
normalizeCompositePathForLogging
in classAbstractPropertyHolder
-
startingProperty
public void startingProperty(org.hibernate.annotations.common.reflection.XProperty property)
Description copied from interface:PropertyHolder
Called during binding to allow the PropertyHolder to inspect its discovered properties. Mainly this is used in collecting attribute conversion declarations (via @Convert/@Converts).- Parameters:
property
- The property
-
locateAttributeConversionInfo
protected AttributeConversionInfo locateAttributeConversionInfo(org.hibernate.annotations.common.reflection.XProperty property)
- Specified by:
locateAttributeConversionInfo
in classAbstractPropertyHolder
-
locateAttributeConversionInfo
protected AttributeConversionInfo locateAttributeConversionInfo(String path)
- Specified by:
locateAttributeConversionInfo
in classAbstractPropertyHolder
-
getEntityName
public String getEntityName()
-
addProperty
public void addProperty(Property property, AnnotatedColumns columns, org.hibernate.annotations.common.reflection.XClass declaringClass)
-
getClassName
public String getClassName()
-
getEntityOwnerClassName
public String getEntityOwnerClassName()
-
getTable
public Table getTable()
-
addProperty
public void addProperty(Property prop, org.hibernate.annotations.common.reflection.XClass declaringClass)
-
getIdentifier
public KeyValue getIdentifier()
-
isOrWithinEmbeddedId
public boolean isOrWithinEmbeddedId()
Description copied from interface:PropertyHolder
Return true if this component is or is embedded in a @EmbeddedId
-
isWithinElementCollection
public boolean isWithinElementCollection()
Description copied from interface:PropertyHolder
Return true if this component is within an @ElementCollection.
-
getPersistentClass
public PersistentClass getPersistentClass()
-
isComponent
public boolean isComponent()
-
isEntity
public boolean isEntity()
-
setParentProperty
public void setParentProperty(String parentProperty)
- Specified by:
setParentProperty
in interfacePropertyHolder
- Overrides:
setParentProperty
in classAbstractPropertyHolder
-
getOverriddenColumn
public Column[] getOverriddenColumn(String propertyName)
Description copied from class:AbstractPropertyHolder
Get column overriding, property first, then parent, then holder replace the placeholder 'collection&&element' with nothingThese rules are here to support both JPA 2 and legacy overriding rules.
- Specified by:
getOverriddenColumn
in interfacePropertyHolder
- Overrides:
getOverriddenColumn
in classAbstractPropertyHolder
-
getOverriddenJoinColumn
public JoinColumn[] getOverriddenJoinColumn(String propertyName)
Description copied from class:AbstractPropertyHolder
Get column overriding, property first, then parent, then holder replace the placeholder 'collection&&element' with nothing These rules are here to support both JPA 2 and legacy overriding rules.- Specified by:
getOverriddenJoinColumn
in interfacePropertyHolder
- Overrides:
getOverriddenJoinColumn
in classAbstractPropertyHolder
-
-