Package org.hibernate.cfg
Class ComponentPropertyHolder
- java.lang.Object
-
- org.hibernate.cfg.AbstractPropertyHolder
-
- org.hibernate.cfg.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.cfg.AbstractPropertyHolder
parent
-
-
Constructor Summary
Constructors Constructor Description ComponentPropertyHolder(Component component, java.lang.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 prop, Ejb3Column[] columns, org.hibernate.annotations.common.reflection.XClass declaringClass)
java.lang.String
getClassName()
java.lang.String
getEntityName()
java.lang.String
getEntityOwnerClassName()
KeyValue
getIdentifier()
Column[]
getOverriddenColumn(java.lang.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.JoinColumn[]
getOverriddenJoinColumn(java.lang.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 withing an @ElementCollection.protected AttributeConversionInfo
locateAttributeConversionInfo(java.lang.String path)
protected AttributeConversionInfo
locateAttributeConversionInfo(org.hibernate.annotations.common.reflection.XProperty property)
protected java.lang.String
normalizeCompositePath(java.lang.String attributeName)
protected java.lang.String
normalizeCompositePathForLogging(java.lang.String attributeName)
void
setParentProperty(java.lang.String parentProperty)
void
startingProperty(org.hibernate.annotations.common.reflection.XProperty property)
Called during binding to allow the PropertyHolder to inspect its discovered properties.java.lang.String
toString()
-
Methods inherited from class org.hibernate.cfg.AbstractPropertyHolder
buildExceptionFromInstantiationError, getContext, getJoinTable, getOverriddenForeignKey, getOverriddenJoinTable, getPath, isInIdClass, makeAttributeConverterDescriptor, resolveAttributeConverterDescriptor, setCurrentProperty, setInIdClass
-
-
-
-
Constructor Detail
-
ComponentPropertyHolder
public ComponentPropertyHolder(Component component, java.lang.String path, PropertyData inferredData, PropertyHolder parent, MetadataBuildingContext context)
-
-
Method Detail
-
normalizeCompositePath
protected java.lang.String normalizeCompositePath(java.lang.String attributeName)
- Specified by:
normalizeCompositePath
in classAbstractPropertyHolder
-
normalizeCompositePathForLogging
protected java.lang.String normalizeCompositePathForLogging(java.lang.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(java.lang.String path)
- Specified by:
locateAttributeConversionInfo
in classAbstractPropertyHolder
-
getEntityName
public java.lang.String getEntityName()
-
addProperty
public void addProperty(Property prop, Ejb3Column[] columns, org.hibernate.annotations.common.reflection.XClass declaringClass)
-
getClassName
public java.lang.String getClassName()
-
getEntityOwnerClassName
public java.lang.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 withing an @ElementCollection.
-
getPersistentClass
public PersistentClass getPersistentClass()
-
isComponent
public boolean isComponent()
-
isEntity
public boolean isEntity()
-
setParentProperty
public void setParentProperty(java.lang.String parentProperty)
- Specified by:
setParentProperty
in interfacePropertyHolder
- Overrides:
setParentProperty
in classAbstractPropertyHolder
-
getOverriddenColumn
public Column[] getOverriddenColumn(java.lang.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:
getOverriddenColumn
in interfacePropertyHolder
- Overrides:
getOverriddenColumn
in classAbstractPropertyHolder
-
getOverriddenJoinColumn
public JoinColumn[] getOverriddenJoinColumn(java.lang.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
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-