Package org.hibernate.type
Class SpecialOneToOneType
- java.lang.Object
-
- org.hibernate.type.AbstractType
-
- org.hibernate.type.EntityType
-
- org.hibernate.type.OneToOneType
-
- org.hibernate.type.SpecialOneToOneType
-
- All Implemented Interfaces:
Serializable
,AssociationType
,Type
public class SpecialOneToOneType extends OneToOneType
A one-to-one association that maps to specific formula(s) instead of the primary key column of the owning entity.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.hibernate.type.EntityType
uniqueKeyPropertyName
-
Fields inherited from class org.hibernate.type.AbstractType
LEGACY_DEFAULT_SIZE, LEGACY_DICTATED_SIZE
-
-
Constructor Summary
Constructors Constructor Description SpecialOneToOneType(SpecialOneToOneType original, String superTypeEntityName)
SpecialOneToOneType(TypeConfiguration typeConfiguration, String referencedEntityName, ForeignKeyDirection foreignKeyType, boolean referenceToPrimaryKey, String uniqueKeyPropertyName, boolean lazy, boolean unwrapProxy, String entityName, String propertyName, boolean constrained)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
assemble(Serializable oid, SharedSessionContractImplementor session, Object owner)
Reconstruct the object from its disassembled state.Serializable
disassemble(Object value, SessionFactoryImplementor sessionFactory)
Return a disassembled representation of the object.Serializable
disassemble(Object value, SharedSessionContractImplementor session, Object owner)
Return a disassembled representation of the object.int
getColumnSpan(Mapping mapping)
How many columns are used to persist this type?int[]
getSqlTypeCodes(Mapping mapping)
boolean
useLHSPrimaryKey()
Is the primary key of the owning entity table to be used in the join?-
Methods inherited from class org.hibernate.type.OneToOneType
getForeignKeyDirection, getPropertyName, isAlwaysDirtyChecked, isDirty, isDirty, isModified, isNull, isNullable, isOneToOne, nullSafeSet, toColumnNullness
-
Methods inherited from class org.hibernate.type.EntityType
compare, compare, deepCopy, getAssociatedEntityName, getAssociatedEntityName, getAssociatedEntityPersister, getAssociatedJoinable, getHashCode, getIdentifier, getIdentifier, getIdentifierOrUniqueKeyPropertyName, getIdentifierOrUniqueKeyType, getLHSPropertyName, getName, getReturnedClass, getRHSUniqueKeyPropertyName, isAssociationType, isEager, isEntityType, isEqual, isLogicalOneToOne, isMutable, isReferenceToIdentifierProperty, isReferenceToPrimaryKey, isSame, loadByUniqueKey, nullSafeSet, replace, requireIdentifierOrUniqueKeyType, resolve, resolveIdentifier, resolveIdentifier, scope, toLoggableString, toString
-
Methods inherited from class org.hibernate.type.AbstractType
beforeAssemble, getHashCode, isAnyType, isCollectionType, isComponentType, isEqual, replace
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.hibernate.type.Type
beforeAssemble, getHashCode, getReturnedClassName, getTypeForEqualsHashCode, isAnyType, isCollectionType, isComponentType, isEqual, replace
-
-
-
-
Constructor Detail
-
SpecialOneToOneType
public SpecialOneToOneType(TypeConfiguration typeConfiguration, String referencedEntityName, ForeignKeyDirection foreignKeyType, boolean referenceToPrimaryKey, String uniqueKeyPropertyName, boolean lazy, boolean unwrapProxy, String entityName, String propertyName, boolean constrained)
-
SpecialOneToOneType
public SpecialOneToOneType(SpecialOneToOneType original, String superTypeEntityName)
-
-
Method Detail
-
getColumnSpan
public int getColumnSpan(Mapping mapping) throws MappingException
Description copied from interface:Type
How many columns are used to persist this type?Always the same as
getSqlTypCodes(mapping).length
.- Specified by:
getColumnSpan
in interfaceType
- Overrides:
getColumnSpan
in classOneToOneType
- Parameters:
mapping
- The mapping object :/- Returns:
- The number of columns
- Throws:
MappingException
- Generally indicates an issue accessing the passed mapping object.
-
getSqlTypeCodes
public int[] getSqlTypeCodes(Mapping mapping) throws MappingException
Description copied from interface:Type
Return the JDBC types codes as defined byTypes
orSqlTypes
for the columns mapped by this type.The number of elements in this array must match the return from
Type.getColumnSpan(org.hibernate.engine.spi.Mapping)
.- Specified by:
getSqlTypeCodes
in interfaceType
- Overrides:
getSqlTypeCodes
in classOneToOneType
- Parameters:
mapping
- The mapping object :/- Returns:
- The JDBC type codes.
- Throws:
MappingException
- Generally indicates an issue accessing the passed mapping object.
-
useLHSPrimaryKey
public boolean useLHSPrimaryKey()
Description copied from interface:AssociationType
Is the primary key of the owning entity table to be used in the join?- Specified by:
useLHSPrimaryKey
in interfaceAssociationType
- Overrides:
useLHSPrimaryKey
in classOneToOneType
-
disassemble
public Serializable disassemble(Object value, SharedSessionContractImplementor session, Object owner) throws HibernateException
Description copied from interface:Type
Return a disassembled representation of the object. This is the representation that is stored in the second-level cache.A reference to an associated entity should be disassembled to its primary key value.
- Specified by:
disassemble
in interfaceType
- Overrides:
disassemble
in classOneToOneType
- Parameters:
value
- the value to cachesession
- the originating sessionowner
- optional parent entity object (needed for collections)- Returns:
- the disassembled, deep cloned state
- Throws:
HibernateException
- An error from Hibernate
-
disassemble
public Serializable disassemble(Object value, SessionFactoryImplementor sessionFactory) throws HibernateException
Description copied from interface:Type
Return a disassembled representation of the object. This is the representation that is stored in the second-level cache.A reference to an associated entity should be disassembled to its primary key value.
A high-quality implementation of this method should ensure that:
Objects.equals(disassemble(x,s), disassemble(y,s))
== isEqual(x,y,sf)and that:
Objects.equals(x, assemble(disassemble(x,s),s,o))
That is, the implementation must be consistent with
Type.isEqual(Object, Object, SessionFactoryImplementor)
and withType.assemble(Serializable, SharedSessionContractImplementor, Object)
.- Specified by:
disassemble
in interfaceType
- Overrides:
disassemble
in classOneToOneType
- Parameters:
value
- the value to cachesessionFactory
- the session factory- Returns:
- the disassembled, deep cloned state
- Throws:
HibernateException
- An error from Hibernate
-
assemble
public Object assemble(Serializable oid, SharedSessionContractImplementor session, Object owner) throws HibernateException
Description copied from interface:Type
Reconstruct the object from its disassembled state. This function is the inverse ofType.disassemble(Object, SharedSessionContractImplementor, Object)
.- Specified by:
assemble
in interfaceType
- Overrides:
assemble
in classOneToOneType
- Parameters:
oid
- the disassembled state from the cachesession
- the originating sessionowner
- the parent entity object- Returns:
- the (re)assembled object
- Throws:
HibernateException
- An error from Hibernate
-
-