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(org.springframework.jdbc.support.lob.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,
org.springframework.jdbc.support.lob.LobHandler lobHandler)
Template method to extract a value from the given result set.
|
protected void |
nullSafeSetInternal(PreparedStatement ps,
int index,
Object value,
org.springframework.jdbc.support.lob.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, replacepublic BlobStringType()
protected BlobStringType(org.springframework.jdbc.support.lob.LobHandler lobHandler,
TransactionManager jtaTransactionManager)
null).public int[] sqlTypes()
public Class<?> returnedClass()
protected Object nullSafeGetInternal(ResultSet rs, String[] names, Object owner, org.springframework.jdbc.support.lob.LobHandler lobHandler) throws SQLException, UnsupportedEncodingException
AbstractLobTypenullSafeGetInternal in class AbstractLobTypers - the ResultSet to extract fromnames - the column namesowner - the containing entitylobHandler - the LobHandler to useSQLException - if thrown by JDBC methodsUnsupportedEncodingExceptionprotected void nullSafeSetInternal(PreparedStatement ps, int index, Object value, org.springframework.jdbc.support.lob.LobCreator lobCreator) throws SQLException, UnsupportedEncodingException
AbstractLobTypenullSafeSetInternal in class AbstractLobTypeps - the PreparedStatement to set onindex - the statement parameter indexvalue - the value to setlobCreator - the LobCreator to useSQLException - if thrown by JDBC methodsUnsupportedEncodingExceptionprotected 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)