org.hibernate.type
Class SpecialOneToOneType

java.lang.Object
  extended by org.hibernate.type.AbstractType
      extended by org.hibernate.type.EntityType
          extended by org.hibernate.type.OneToOneType
              extended by 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
isEmbeddedInXML, uniqueKeyPropertyName
 
Fields inherited from class org.hibernate.type.AbstractType
LEGACY_DEFAULT_SIZE, LEGACY_DICTATED_SIZE
 
Constructor Summary
SpecialOneToOneType(TypeFactory.TypeScope scope, String referencedEntityName, ForeignKeyDirection foreignKeyType, String uniqueKeyPropertyName, boolean lazy, boolean unwrapProxy, String entityName, String propertyName)
           
 
Method Summary
 Object assemble(Serializable oid, SessionImplementor session, Object owner)
          Reconstruct the object from its disassembled state.
 Size[] defaultSizes(Mapping mapping)
          Defines the column sizes to use according to this type if the user did not explicitly say (and if no Type.dictatedSizes(org.hibernate.engine.spi.Mapping) were given).
 Size[] dictatedSizes(Mapping mapping)
          Return the column sizes dictated by this type.
 Serializable disassemble(Object value, SessionImplementor session, Object owner)
          Return a disassembled representation of the object.
 int getColumnSpan(Mapping mapping)
          How many columns are used to persist this type.
 Object hydrate(ResultSet rs, String[] names, SessionImplementor session, Object owner)
          Extract a value from the JDBC result set.
 int[] sqlTypes(Mapping mapping)
          Return the JDBC types codes (per Types) for the columns mapped by this type.
 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, nullSafeSet, toColumnNullness
 
Methods inherited from class org.hibernate.type.EntityType
compare, deepCopy, fromXMLNode, getAssociatedEntityName, getAssociatedEntityName, getAssociatedJoinable, getHashCode, getIdentifier, getIdentifierOrUniqueKeyPropertyName, getIdentifierOrUniqueKeyType, getLHSPropertyName, getName, getOnCondition, getReturnedClass, getRHSUniqueKeyPropertyName, getSemiResolvedType, isAssociationType, isEmbeddedInXML, isEntityType, isEqual, isLogicalOneToOne, isMutable, isNotEmbedded, isReferenceToPrimaryKey, isSame, isXMLElement, loadByUniqueKey, nullSafeGet, nullSafeGet, replace, resolve, resolveIdentifier, scope, setToXMLNode, toLoggableString, toString
 
Methods inherited from class org.hibernate.type.AbstractType
beforeAssemble, getHashCode, isAnyType, isCollectionType, isComponentType, isEqual, replace, replaceNode, semiResolve
 
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, isAnyType, isCollectionType, isComponentType, isEqual, replace, semiResolve
 

Constructor Detail

SpecialOneToOneType

public SpecialOneToOneType(TypeFactory.TypeScope scope,
                           String referencedEntityName,
                           ForeignKeyDirection foreignKeyType,
                           String uniqueKeyPropertyName,
                           boolean lazy,
                           boolean unwrapProxy,
                           String entityName,
                           String propertyName)
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 sqlTypes(mapping).length

Specified by:
getColumnSpan in interface Type
Overrides:
getColumnSpan in class OneToOneType
Parameters:
mapping - The mapping object :/
Returns:
The number of columns
Throws:
MappingException - Generally indicates an issue accessing the passed mapping object.

sqlTypes

public int[] sqlTypes(Mapping mapping)
               throws MappingException
Description copied from interface: Type
Return the JDBC types codes (per Types) for the columns mapped by this type.

NOTE: The number of elements in this array matches the return from Type.getColumnSpan(org.hibernate.engine.spi.Mapping).

Specified by:
sqlTypes in interface Type
Overrides:
sqlTypes in class OneToOneType
Parameters:
mapping - The mapping object :/
Returns:
The JDBC type codes.
Throws:
MappingException - Generally indicates an issue accessing the passed mapping object.

dictatedSizes

public Size[] dictatedSizes(Mapping mapping)
                     throws MappingException
Description copied from interface: Type
Return the column sizes dictated by this type. For example, the mapping for a char/Character would have a dictated length limit of 1; for a string-based UUID would have a size limit of 36; etc.

NOTE: The number of elements in this array matches the return from Type.getColumnSpan(org.hibernate.engine.spi.Mapping).

Specified by:
dictatedSizes in interface Type
Overrides:
dictatedSizes in class OneToOneType
Parameters:
mapping - The mapping object :/
Returns:
The dictated sizes.
Throws:
MappingException - Generally indicates an issue accessing the passed mapping object.

defaultSizes

public Size[] defaultSizes(Mapping mapping)
                    throws MappingException
Description copied from interface: Type
Defines the column sizes to use according to this type if the user did not explicitly say (and if no Type.dictatedSizes(org.hibernate.engine.spi.Mapping) were given).

NOTE: The number of elements in this array matches the return from Type.getColumnSpan(org.hibernate.engine.spi.Mapping).

Specified by:
defaultSizes in interface Type
Overrides:
defaultSizes in class OneToOneType
Parameters:
mapping - The mapping object :/
Returns:
The default sizes.
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 interface AssociationType
Overrides:
useLHSPrimaryKey in class OneToOneType

hydrate

public Object hydrate(ResultSet rs,
                      String[] names,
                      SessionImplementor session,
                      Object owner)
               throws HibernateException,
                      SQLException
Description copied from interface: Type
Extract a value from the JDBC result set. This is useful for 2-phase property initialization - the second phase is a call to Type.resolve(java.lang.Object, org.hibernate.engine.spi.SessionImplementor, java.lang.Object) This hydrated value will be either:

Specified by:
hydrate in interface Type
Overrides:
hydrate in class OneToOneType
Parameters:
rs - The JDBC result set
names - the column names making up this type value (use to read from result set)
session - The originating session
owner - the parent entity
Returns:
An entity or collection key, or an actual value.
Throws:
HibernateException - An error from Hibernate
SQLException - An error from the JDBC driver
See Also:
Type.resolve(java.lang.Object, org.hibernate.engine.spi.SessionImplementor, java.lang.Object)

disassemble

public Serializable disassemble(Object value,
                                SessionImplementor session,
                                Object owner)
                         throws HibernateException
Description copied from interface: Type
Return a disassembled representation of the object. This is the value Hibernate will use in second level caching, so care should be taken to break values down to their simplest forms; for entities especially, this means breaking them down into their constituent parts.

Specified by:
disassemble in interface Type
Overrides:
disassemble in class OneToOneType
Parameters:
value - the value to cache
session - the originating session
owner - optional parent entity object (needed for collections)
Returns:
the disassembled, deep cloned state
Throws:
HibernateException - An error from Hibernate

assemble

public Object assemble(Serializable oid,
                       SessionImplementor session,
                       Object owner)
                throws HibernateException
Description copied from interface: Type
Reconstruct the object from its disassembled state. This method is the reciprocal of Type.disassemble(java.lang.Object, org.hibernate.engine.spi.SessionImplementor, java.lang.Object)

Specified by:
assemble in interface Type
Overrides:
assemble in class OneToOneType
Parameters:
oid - the disassembled state from the cache
session - the originating session
owner - the parent entity object
Returns:
the (re)assembled object
Throws:
HibernateException - An error from Hibernate


Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.