|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.orm.hibernate3.support.AbstractLobType org.springframework.orm.hibernate3.support.BlobStringType
public class BlobStringType
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.
getCharacterEncoding()
,
LocalSessionFactoryBean.setLobHandler(org.springframework.jdbc.support.lob.LobHandler)
Field Summary |
---|
Fields inherited from class org.springframework.orm.hibernate3.support.AbstractLobType |
---|
logger |
Constructor Summary | |
---|---|
|
BlobStringType()
Constructor used by Hibernate: fetches config-time LobHandler and config-time JTA TransactionManager from LocalSessionFactoryBean. |
protected |
BlobStringType(LobHandler lobHandler,
TransactionManager jtaTransactionManager)
Constructor used for testing: takes an explicit LobHandler and an explicit JTA TransactionManager (can be null ). |
Method Summary | |
---|---|
protected String |
getCharacterEncoding()
Determine the character encoding to apply to the BLOB's bytes to turn them into a String. |
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, deepCopy, disassemble, equals, hashCode, isMutable, nullSafeGet, nullSafeSet, replace |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public BlobStringType()
LocalSessionFactoryBean.getConfigTimeLobHandler()
,
LocalSessionFactoryBean.getConfigTimeTransactionManager()
protected BlobStringType(LobHandler lobHandler, TransactionManager jtaTransactionManager)
null
).
Method Detail |
---|
public int[] sqlTypes()
public Class returnedClass()
protected Object nullSafeGetInternal(ResultSet rs, String[] names, Object owner, LobHandler lobHandler) throws SQLException, UnsupportedEncodingException
AbstractLobType
nullSafeGetInternal
in class AbstractLobType
rs
- the ResultSet to extract fromnames
- the column namesowner
- the containing entitylobHandler
- the LobHandler to use
SQLException
- if thrown by JDBC methods
UnsupportedEncodingException
protected void nullSafeSetInternal(PreparedStatement ps, int index, Object value, LobCreator lobCreator) throws SQLException, UnsupportedEncodingException
AbstractLobType
nullSafeSetInternal
in class AbstractLobType
ps
- the PreparedStatement to set onindex
- the statement parameter indexvalue
- the value to setlobCreator
- the LobCreator to use
SQLException
- if thrown by JDBC methods
UnsupportedEncodingException
protected String getCharacterEncoding()
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".
null
to use the platform default encodingString.String(byte[], String)
,
String.getBytes(String)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |