public class BlobStringType extends AbstractLobType
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)
logger
Modifier | Constructor and Description |
---|---|
|
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 ). |
Modifier and Type | Method and Description |
---|---|
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() |
assemble, deepCopy, disassemble, equals, hashCode, isMutable, nullSafeGet, nullSafeSet, replace
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
nullSafeGet, nullSafeSet
public BlobStringType()
protected BlobStringType(LobHandler lobHandler, TransactionManager jtaTransactionManager)
null
).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 useSQLException
- if thrown by JDBC methodsUnsupportedEncodingException
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 useSQLException
- if thrown by JDBC methodsUnsupportedEncodingException
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)