The Spring Framework

## org.springframework.orm.hibernate3.support
Class BlobSerializableType

    java.lang.Object
      org.springframework.orm.hibernate3.support.AbstractLobType
          org.springframework.orm.hibernate3.support.BlobSerializableType

All Implemented Interfaces:
  UserType

    public class BlobSerializableType

extends AbstractLobType

Hibernate UserType implementation for arbitrary objects that get serialized to BLOBs. Retrieves the LobHandler to use from LocalSessionFactoryBean at config time.

Can also be defined in generic Hibernate mappings, as DefaultLobCreator will work with most JDBC-compliant database drivers. In this case, the field type does not have to be BLOB: For databases like MySQL and MS SQL Server, any large enough binary type will work.

Since:
  1.2
Author:
  Juergen Hoeller
See Also:
  `LocalSessionFactoryBean.setLobHandler(org.springframework.jdbc.support.lob.LobHandler)`

Field Summary

Fields inherited from class org.springframework.orm.hibernate3.support.AbstractLobType
`logger`

Constructor Summary
`` `BlobSerializableType()` Constructor used by Hibernate: fetches config-time LobHandler and config-time JTA TransactionManager from LocalSessionFactoryBean.
`protected` `BlobSerializableType(LobHandler lobHandler, TransactionManager jtaTransactionManager)` Constructor used for testing: takes an explicit LobHandler and an explicit JTA TransactionManager (can be `null`).

Method Summary
`Object` `deepCopy(Object value)` This implementation returns the passed-in value as-is.
`boolean` `isMutable()` This implementation returns false.
`protected Object` `nullSafeGetInternal(ResultSet rs, String[] names, Object owner, LobHandler lobHandler)` Template method to extract a value from the given result set.
`protected void` `nullSafeSetInternal(PreparedStatement ps, int index, Object value, LobCreator lobCreator)` Template method to set the given parameter value on the given statement.
`Class` `returnedClass()`
`int[]` `sqlTypes()`

Methods inherited from class org.springframework.orm.hibernate3.support.AbstractLobType
`assemble, disassemble, equals, hashCode, nullSafeGet, nullSafeSet, replace`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### BlobSerializableType

    public BlobSerializableType()

  Constructor used by Hibernate: fetches config-time LobHandler and config-time JTA TransactionManager from LocalSessionFactoryBean.

  See Also:
    `LocalSessionFactoryBean.getConfigTimeLobHandler()`, `LocalSessionFactoryBean.getConfigTimeTransactionManager()`

### BlobSerializableType

    protected BlobSerializableType(LobHandler lobHandler,
                                   TransactionManager jtaTransactionManager)

  Constructor used for testing: takes an explicit LobHandler and an explicit JTA TransactionManager (can be `null`).

Method Detail

### sqlTypes

    public int[] sqlTypes()

### returnedClass

    public Class returnedClass()

### isMutable

    public boolean isMutable()

  Description copied from class: `AbstractLobType`
  This implementation returns false.

  Specified by:
    `isMutable` in interface `UserType`
  Overrides:
    `isMutable` in class `AbstractLobType`

### deepCopy

    public Object deepCopy(Object value)
                    throws HibernateException

  Description copied from class: `AbstractLobType`
  This implementation returns the passed-in value as-is.

  Specified by:
    `deepCopy` in interface `UserType`
  Overrides:
    `deepCopy` in class `AbstractLobType`
  Throws:
    `HibernateException`

### nullSafeGetInternal

    protected Object nullSafeGetInternal(ResultSet rs,
                                         String[] names,
                                         Object owner,
                                         LobHandler lobHandler)
                                  throws SQLException,
                                         IOException,
                                         HibernateException

  Description copied from class: `AbstractLobType`
  Template method to extract a value from the given result set.

  Specified by:
    `nullSafeGetInternal` in class `AbstractLobType`
  Parameters:
    `rs` - the ResultSet to extract from
    `names` - the column names
    `owner` - the containing entity
    `lobHandler` - the LobHandler to use
  Returns:
    the extracted value
  Throws:
    `SQLException` - if thrown by JDBC methods
    `IOException` - if thrown by streaming methods
    `HibernateException` - in case of any other exceptions

### nullSafeSetInternal

    protected void nullSafeSetInternal(PreparedStatement ps,
                                       int index,
                                       Object value,
                                       LobCreator lobCreator)
                                throws SQLException,
                                       IOException

  Description copied from class: `AbstractLobType`
  Template method to set the given parameter value on the given statement.

  Specified by:
    `nullSafeSetInternal` in class `AbstractLobType`
  Parameters:
    `ps` - the PreparedStatement to set on
    `index` - the statement parameter index
    `value` - the value to set
    `lobCreator` - the LobCreator to use
  Throws:
    `SQLException` - if thrown by JDBC methods
    `IOException` - if thrown by streaming methods

The Spring Framework

Copyright © 2002-2008 The Spring Framework.