org.springframework.orm.hibernate3.support

## Class BlobByteArrayType

- java.lang.Object
- - org.springframework.orm.hibernate3.support.AbstractLobType
  - - org.springframework.orm.hibernate3.support.BlobByteArrayType

- All Implemented Interfaces:
    UserType

      public class BlobByteArrayType
      extends AbstractLobType

  Hibernate UserType implementation for byte arrays that get mapped 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

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `deepCopy(Object value)` This implementation returns the passed-in value as-is.
    `boolean` | `equals(Object x, Object y)` This implementation delegates to the Hibernate EqualsHelper.
    `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, hashCode, nullSafeGet, nullSafeSet, replace`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.hibernate.usertype.UserType

      `nullSafeGet, nullSafeSet`

- - ### Constructor Detail

    - #### BlobByteArrayType

          public BlobByteArrayType()

      Constructor used by Hibernate: fetches config-time LobHandler and config-time JTA TransactionManager from LocalSessionFactoryBean.
      See Also:
        `LocalSessionFactoryBean.getConfigTimeLobHandler()`, `LocalSessionFactoryBean.getConfigTimeTransactionManager()`

    - #### BlobByteArrayType

          protected BlobByteArrayType(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`

    - #### equals

          public boolean equals(Object x,
                       Object y)

      Description copied from class: `AbstractLobType`
      This implementation delegates to the Hibernate EqualsHelper.
      Specified by:
        `equals` in interface `UserType`
      Overrides:
        `equals` in class `AbstractLobType`
      See Also:
        `EqualsHelper.equals(java.lang.Object, java.lang.Object)`

    - #### deepCopy

          public Object deepCopy(Object value)

      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`

    - #### nullSafeGetInternal

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

      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

    - #### nullSafeSetInternal

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

      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