Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.hibernate.type
Interface Type

All Superinterfaces:
  Serializable

All Known Subinterfaces:
  AbstractComponentType, AssociationType, DiscriminatorType, IdentifierType, VersionType

All Known Implementing Classes:
  AbstractBynaryType, AbstractCharArrayType, AbstractType, AdaptedImmutableType, AnyType, ArrayType, BagType, BigDecimalType, BigIntegerType, BinaryType, BlobType, BooleanType, ByteType, CalendarDateType, CalendarType, CharacterArrayType, CharacterType, CharArrayType, CharBooleanType, ClassType, ClobType, CollectionType, ComponentType, CompositeCustomType, CurrencyType, CustomCollectionType, CustomType, DateType, DbTimestampType, DoubleType, EmbeddedComponentType, EntityType, FloatType, IdentifierBagType, ImmutableType, IntegerType, ListType, LocaleType, LongType, ManyToOneType, MapType, MetaType, MutableType, NullableType, OneToOneType, OrderedMapType, OrderedSetType, PrimitiveType, SerializableType, SetType, ShortType, SortedMapType, SortedSetType, SpecialOneToOneType, StringType, TextType, TimestampType, TimeType, TimeZoneType, TrueFalseType, WrapperBinaryType, YesNoType

    public interface Type

extends Serializable

Defines a mapping from a Java type to an JDBC datatype. This interface is intended to be implemented by applications that need custom types.
Implementors should usually be immutable and must certainly be threadsafe.

Author:
  Gavin King

Method Summary
`Object` | `assemble(Serializable cached, SessionImplementor session, Object owner)` Reconstruct the object from its cached "disassembled" state.
`void` | `beforeAssemble(Serializable cached, SessionImplementor session)` Called before assembling a query result set from the query cache, to allow batch fetching of entities missing from the second-level cache.
`int` | `compare(Object x, Object y, EntityMode entityMode)` compare two instances of the type
`Object` | `deepCopy(Object value, EntityMode entityMode, SessionFactoryImplementor factory)` Return a deep copy of the persistent state, stopping at entities and at collections.
`Serializable` | `disassemble(Object value, SessionImplementor session, Object owner)` Return a cacheable "disassembled" representation of the object.
`Object` | `fromXMLNode(org.dom4j.Node xml, Mapping factory)` Parse the XML representation of an instance.
`int` | `getColumnSpan(Mapping mapping)` How many columns are used to persist this type.
`int` | `getHashCode(Object x, EntityMode entityMode)` Get a hashcode, consistent with persistence "equality"
`int` | `getHashCode(Object x, EntityMode entityMode, SessionFactoryImplementor factory)` Get a hashcode, consistent with persistence "equality"
`String` | `getName()` Returns the abbreviated name of the type.
`Class` | `getReturnedClass()` The class returned by `nullSafeGet()` methods.
`Type` | `getSemiResolvedType(SessionFactoryImplementor factory)` Get the type of a semi-resolved value.
`Object` | `hydrate(ResultSet rs, String[] names, SessionImplementor session, Object owner)` Retrieve an instance of the mapped class, or the identifier of an entity or collection, from a JDBC resultset.
`boolean` | `isAnyType()` Is this an "any" type.
`boolean` | `isAssociationType()` Return true if the implementation is castable to `AssociationType`.
`boolean` | `isCollectionType()` Is this type a collection type.
`boolean` | `isComponentType()` Is this type a component type.
`boolean` | `isDirty(Object old, Object current, boolean[] checkable, SessionImplementor session)` Should the parent be considered dirty, given both the old and current field or element value?
`boolean` | `isDirty(Object old, Object current, SessionImplementor session)` Should the parent be considered dirty, given both the old and current field or element value?
`boolean` | `isEntityType()` Is this type an entity type?
`boolean` | `isEqual(Object x, Object y, EntityMode entityMode)` Compare two instances of the class mapped by this type for persistence "equality" - equality of persistent state.
`boolean` | `isEqual(Object x, Object y, EntityMode entityMode, SessionFactoryImplementor factory)` Compare two instances of the class mapped by this type for persistence "equality" - equality of persistent state.
`boolean` | `isModified(Object oldHydratedState, Object currentState, boolean[] checkable, SessionImplementor session)` Has the parent object been modified, compared to the current database state?
`boolean` | `isMutable()` Are objects of this type mutable.
`boolean` | `isSame(Object x, Object y, EntityMode entityMode)` Compare two instances of the class mapped by this type for persistence "equality" - equality of persistent state - taking a shortcut for entity references.
`boolean` | `isXMLElement()`
`Object` | `nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner)` Retrieve an instance of the mapped class from a JDBC resultset.
`Object` | `nullSafeGet(ResultSet rs, String name, SessionImplementor session, Object owner)` Retrieve an instance of the mapped class from a JDBC resultset.
`void` | `nullSafeSet(PreparedStatement st, Object value, int index, boolean[] settable, SessionImplementor session)` Write an instance of the mapped class to a prepared statement, ignoring some columns.
`void` | `nullSafeSet(PreparedStatement st, Object value, int index, SessionImplementor session)` Write an instance of the mapped class to a prepared statement.
`Object` | `replace(Object original, Object target, SessionImplementor session, Object owner, Map copyCache)` During merge, replace the existing (target) value in the entity we are merging to with a new (original) value from the detached entity we are merging.
`Object` | `replace(Object original, Object target, SessionImplementor session, Object owner, Map copyCache, ForeignKeyDirection foreignKeyDirection)` During merge, replace the existing (target) value in the entity we are merging to with a new (original) value from the detached entity we are merging.
`Object` | `resolve(Object value, SessionImplementor session, Object owner)` Map identifiers to entities or collections.
`Object` | `semiResolve(Object value, SessionImplementor session, Object owner)` Given a hydrated, but unresolved value, return a value that may be used to reconstruct property-ref associations.
`void` | `setToXMLNode(org.dom4j.Node node, Object value, SessionFactoryImplementor factory)` A representation of the value to be embedded in an XML element.
`int[]` | `sqlTypes(Mapping mapping)` Return the SQL type codes for the columns mapped by this type.
`boolean[]` | `toColumnNullness(Object value, Mapping mapping)` Given an instance of the type, return an array of boolean, indicating which mapped columns would be null.
`String` | `toLoggableString(Object value, SessionFactoryImplementor factory)` A representation of the value to be embedded in a log file.

Method Detail

### isAssociationType

    boolean isAssociationType()

  Return true if the implementation is castable to `AssociationType`. This does not necessarily imply that the type actually represents an association.

  Returns:
    boolean
  See Also:
    `AssociationType`

### isCollectionType

    boolean isCollectionType()

  Is this type a collection type.

### isComponentType

    boolean isComponentType()

  Is this type a component type. If so, the implementation must be castable to `AbstractComponentType`. A component type may own collections or associations and hence must provide certain extra functionality.

  Returns:
    boolean
  See Also:
    `AbstractComponentType`

### isEntityType

    boolean isEntityType()

  Is this type an entity type?

  Returns:
    boolean

### isAnyType

    boolean isAnyType()

  Is this an "any" type. i.e. a reference to a persistent entity that is not modelled as a (foreign key) association.

### isXMLElement

    boolean isXMLElement()

### sqlTypes

    int[] sqlTypes(Mapping mapping)
                   throws MappingException

  Return the SQL type codes for the columns mapped by this type. The codes are defined on `java.sql.Types`.

  Returns:
    the typecodes
  Throws:
    `MappingException`
  See Also:
    `Types`

### getColumnSpan

    int getColumnSpan(Mapping mapping)
                      throws MappingException

  How many columns are used to persist this type.

  Throws:
    `MappingException`

### getReturnedClass

    Class getReturnedClass()

  The class returned by `nullSafeGet()` methods. This is used to establish the class of an array of this type.

  Returns:
    Class

### isSame

    boolean isSame(Object x,
                   Object y,
                   EntityMode entityMode)
                   throws HibernateException

  Compare two instances of the class mapped by this type for persistence "equality" - equality of persistent state - taking a shortcut for entity references.

  Parameters:
    `x` -
    `y` -
    `entityMode` -
  Returns:
    boolean
  Throws:
    `HibernateException`

### isEqual

    boolean isEqual(Object x,
                    Object y,
                    EntityMode entityMode)
                    throws HibernateException

  Compare two instances of the class mapped by this type for persistence "equality" - equality of persistent state.

  Parameters:
    `x` -
    `y` -
    `entityMode` -
  Returns:
    boolean
  Throws:
    `HibernateException`

### isEqual

    boolean isEqual(Object x,
                    Object y,
                    EntityMode entityMode,
                    SessionFactoryImplementor factory)
                    throws HibernateException

  Compare two instances of the class mapped by this type for persistence "equality" - equality of persistent state.

  Parameters:
    `x` -
    `y` -
    `entityMode` -
  Returns:
    boolean
  Throws:
    `HibernateException`

### getHashCode

    int getHashCode(Object x,
                    EntityMode entityMode)
                    throws HibernateException

  Get a hashcode, consistent with persistence "equality"

  Parameters:
    `x` -
    `entityMode` -
  Throws:
    `HibernateException`

### getHashCode

    int getHashCode(Object x,
                    EntityMode entityMode,
                    SessionFactoryImplementor factory)
                    throws HibernateException

  Get a hashcode, consistent with persistence "equality"

  Parameters:
    `x` -
    `entityMode` -
    `factory` -
  Throws:
    `HibernateException`

### compare

    int compare(Object x,
                Object y,
                EntityMode entityMode)

  compare two instances of the type

  Parameters:
    `entityMode` -

### isDirty

    boolean isDirty(Object old,
                    Object current,
                    SessionImplementor session)
                    throws HibernateException

  Should the parent be considered dirty, given both the old and current field or element value?

  Parameters:
    `old` - the old value
    `current` - the current value
    `session` -
  Returns:
    true if the field is dirty
  Throws:
    `HibernateException`

### isDirty

    boolean isDirty(Object old,
                    Object current,
                    boolean[] checkable,
                    SessionImplementor session)
                    throws HibernateException

  Should the parent be considered dirty, given both the old and current field or element value?

  Parameters:
    `old` - the old value
    `current` - the current value
    `checkable` - which columns are actually updatable
    `session` -
  Returns:
    true if the field is dirty
  Throws:
    `HibernateException`

### isModified

    boolean isModified(Object oldHydratedState,
                       Object currentState,
                       boolean[] checkable,
                       SessionImplementor session)
                       throws HibernateException

  Has the parent object been modified, compared to the current database state?

  Parameters:
    `oldHydratedState` - the database state, in a "hydrated" form, with identifiers unresolved
    `currentState` - the current state of the object
    `checkable` - which columns are actually updatable
    `session` -
  Returns:
    true if the field has been modified
  Throws:
    `HibernateException`

### nullSafeGet

    Object nullSafeGet(ResultSet rs,
                       String[] names,
                       SessionImplementor session,
                       Object owner)
                       throws HibernateException,
                              SQLException

  Retrieve an instance of the mapped class from a JDBC resultset. Implementors should handle possibility of null values.

  Parameters:
    `rs` -
    `names` - the column names
    `session` -
    `owner` - the parent entity
  Returns:
    Object
  Throws:
    `HibernateException`
    `SQLException`
  See Also:
    `alternative, 2-phase property initialization`

### nullSafeGet

    Object nullSafeGet(ResultSet rs,
                       String name,
                       SessionImplementor session,
                       Object owner)
                       throws HibernateException,
                              SQLException

  Retrieve an instance of the mapped class from a JDBC resultset. Implementations should handle possibility of null values. This method might be called if the type is known to be a single-column type.

  Parameters:
    `rs` -
    `name` - the column name
    `session` -
    `owner` - the parent entity
  Returns:
    Object
  Throws:
    `HibernateException`
    `SQLException`

### nullSafeSet

    void nullSafeSet(PreparedStatement st,
                     Object value,
                     int index,
                     boolean[] settable,
                     SessionImplementor session)
                     throws HibernateException,
                            SQLException

  Write an instance of the mapped class to a prepared statement, ignoring some columns. Implementors should handle possibility of null values. A multi-column type should be written to parameters starting from `index`.

  Parameters:
    `st` -
    `value` - the object to write
    `index` - statement parameter index
    `settable` - an array indicating which columns to ignore
    `session` -
  Throws:
    `HibernateException`
    `SQLException`

### nullSafeSet

    void nullSafeSet(PreparedStatement st,
                     Object value,
                     int index,
                     SessionImplementor session)
                     throws HibernateException,
                            SQLException

  Write an instance of the mapped class to a prepared statement. Implementors should handle possibility of null values. A multi-column type should be written to parameters starting from `index`.

  Parameters:
    `st` -
    `value` - the object to write
    `index` - statement parameter index
    `session` -
  Throws:
    `HibernateException`
    `SQLException`

### setToXMLNode

    void setToXMLNode(org.dom4j.Node node,
                      Object value,
                      SessionFactoryImplementor factory)
                      throws HibernateException

  A representation of the value to be embedded in an XML element.

  Parameters:
    `value` -
    `factory` -
  Throws:
    `HibernateException`

### toLoggableString

    String toLoggableString(Object value,
                            SessionFactoryImplementor factory)
                            throws HibernateException

  A representation of the value to be embedded in a log file.

  Parameters:
    `value` -
    `factory` -
  Returns:
    String
  Throws:
    `HibernateException`

### fromXMLNode

    Object fromXMLNode(org.dom4j.Node xml,
                       Mapping factory)
                       throws HibernateException

  Parse the XML representation of an instance.

  Parameters:
    `xml` -
    `factory` -
  Returns:
    an instance of the type
  Throws:
    `HibernateException`

### getName

    String getName()

  Returns the abbreviated name of the type.

  Returns:
    String the Hibernate type name

### deepCopy

    Object deepCopy(Object value,
                    EntityMode entityMode,
                    SessionFactoryImplementor factory)
                    throws HibernateException

  Return a deep copy of the persistent state, stopping at entities and at collections.

  Parameters:
    `value` - generally a collection element or entity field
    `entityMode` -
    `factory` -
  Returns:
    Object a copy
  Throws:
    `HibernateException`

### isMutable

    boolean isMutable()

  Are objects of this type mutable. (With respect to the referencing object ... entities and collections are considered immutable because they manage their own internal state.)

  Returns:
    boolean

### disassemble

    Serializable disassemble(Object value,
                             SessionImplementor session,
                             Object owner)
                             throws HibernateException

  Return a cacheable "disassembled" representation of the object.

  Parameters:
    `value` - the value to cache
    `session` - the session
    `owner` - optional parent entity object (needed for collections)
  Returns:
    the disassembled, deep cloned state
  Throws:
    `HibernateException`

### assemble

    Object assemble(Serializable cached,
                    SessionImplementor session,
                    Object owner)
                    throws HibernateException

  Reconstruct the object from its cached "disassembled" state.

  Parameters:
    `cached` - the disassembled state from the cache
    `session` - the session
    `owner` - the parent entity object
  Returns:
    the the object
  Throws:
    `HibernateException`

### beforeAssemble

    void beforeAssemble(Serializable cached,
                        SessionImplementor session)

  Called before assembling a query result set from the query cache, to allow batch fetching of entities missing from the second-level cache.

### hydrate

    Object hydrate(ResultSet rs,
                   String[] names,
                   SessionImplementor session,
                   Object owner)
                   throws HibernateException,
                          SQLException

  Retrieve an instance of the mapped class, or the identifier of an entity or collection, from a JDBC resultset. This is useful for 2-phase property initialization - the second phase is a call to `resolveIdentifier()`.

  Parameters:
    `rs` -
    `names` - the column names
    `session` - the session
    `owner` - the parent entity
  Returns:
    Object an identifier or actual value
  Throws:
    `HibernateException`
    `SQLException`
  See Also:
    `resolve(Object, SessionImplementor, Object)`

### resolve

    Object resolve(Object value,
                   SessionImplementor session,
                   Object owner)
                   throws HibernateException

  Map identifiers to entities or collections. This is the second phase of 2-phase property initialization.

  Parameters:
    `value` - an identifier or value returned by `hydrate()`
    `owner` - the parent entity
    `session` - the session
  Returns:
    the given value, or the value associated with the identifier
  Throws:
    `HibernateException`
  See Also:
    `hydrate(ResultSet, String[], SessionImplementor, Object)`

### semiResolve

    Object semiResolve(Object value,
                       SessionImplementor session,
                       Object owner)
                       throws HibernateException

  Given a hydrated, but unresolved value, return a value that may be used to reconstruct property-ref associations.

  Throws:
    `HibernateException`

### getSemiResolvedType

    Type getSemiResolvedType(SessionFactoryImplementor factory)

  Get the type of a semi-resolved value.

### replace

    Object replace(Object original,
                   Object target,
                   SessionImplementor session,
                   Object owner,
                   Map copyCache)
                   throws HibernateException

  During merge, replace the existing (target) value in the entity we are merging to with a new (original) value from the detached entity we are merging. For immutable objects, or null values, it is safe to simply return the first parameter. For mutable objects, it is safe to return a copy of the first parameter. For objects with component values, it might make sense to recursively replace component values.

  Parameters:
    `original` - the value from the detached entity being merged
    `target` - the value in the managed entity
  Returns:
    the value to be merged
  Throws:
    `HibernateException`

### replace

    Object replace(Object original,
                   Object target,
                   SessionImplementor session,
                   Object owner,
                   Map copyCache,
                   ForeignKeyDirection foreignKeyDirection)
                   throws HibernateException

  During merge, replace the existing (target) value in the entity we are merging to with a new (original) value from the detached entity we are merging. For immutable objects, or null values, it is safe to simply return the first parameter. For mutable objects, it is safe to return a copy of the first parameter. For objects with component values, it might make sense to recursively replace component values.

  Parameters:
    `original` - the value from the detached entity being merged
    `target` - the value in the managed entity
  Returns:
    the value to be merged
  Throws:
    `HibernateException`

### toColumnNullness

    boolean[] toColumnNullness(Object value,
                               Mapping mapping)

  Given an instance of the type, return an array of boolean, indicating which mapped columns would be null.

  Parameters:
    `value` - an instance of the type

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD