public class

BlobStringType

extends AbstractLobType
java.lang.Object
   ↳ org.springframework.orm.hibernate3.support.AbstractLobType
     ↳ org.springframework.orm.hibernate3.support.BlobStringType

Class Overview

Hibernate UserType implementation for Strings that get mapped to BLOBs. Retrieves the LobHandler to use from LocalSessionFactoryBean at config time.

This is intended for the (arguably unnatural, but still common) case where character data is stored in a binary LOB. This requires encoding and decoding the characters within this UserType; see the javadoc of the getCharacterEncoding() method.

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.

Summary

[Expand]
Inherited Fields
From class org.springframework.orm.hibernate3.support.AbstractLobType
Public Constructors
BlobStringType()
Constructor used by Hibernate: fetches config-time LobHandler and config-time JTA TransactionManager from LocalSessionFactoryBean.
Protected Constructors
BlobStringType(LobHandler lobHandler, TransactionManager jtaTransactionManager)
Constructor used for testing: takes an explicit LobHandler and an explicit JTA TransactionManager (can be null).
Public Methods
Class returnedClass()
int[] sqlTypes()
Protected Methods
String getCharacterEncoding()
Determine the character encoding to apply to the BLOB's bytes to turn them into a String.
Object nullSafeGetInternal(ResultSet rs, String[] names, Object owner, LobHandler lobHandler)
Template method to extract a value from the given result set.
void nullSafeSetInternal(PreparedStatement ps, int index, Object value, LobCreator lobCreator)
Template method to set the given parameter value on the given statement.
[Expand]
Inherited Methods
From class org.springframework.orm.hibernate3.support.AbstractLobType
From class java.lang.Object

Public Constructors

public BlobStringType ()

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

Protected Constructors

protected BlobStringType (LobHandler lobHandler, TransactionManager jtaTransactionManager)

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

Public Methods

public Class returnedClass ()

public int[] sqlTypes ()

Protected Methods

protected String getCharacterEncoding ()

Determine the character encoding to apply to the BLOB's bytes to turn them into a String.

Default is null, indicating to use the platform default encoding. To be overridden in subclasses for a specific encoding such as "ISO-8859-1" or "UTF-8".

Returns
  • the character encoding to use, or null to use the platform default encoding

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

Template method to extract a value from the given result set.

Parameters
rs the ResultSet to extract from
names the column names
owner the containing entity
lobHandler the LobHandler to use
Returns
  • the extracted value

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

Template method to set the given parameter value on the given statement.

Parameters
ps the PreparedStatement to set on
index the statement parameter index
value the value to set
lobCreator the LobCreator to use