数据库中的大字段,譬如Clob,Blob,Text等,如果简单使用hibernate来读取实体可能会出现异常。
以Oracle为例:
针对Blob或者Clob,需要在spring注入hibernate的时候增加一下配置:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="lobHandler" ref="defaultLobHandler"></property>
</bean>
<bean id="defaultLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor"/>
</property>
</bean>
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" lazy-init="true"></bean>
这样就可以使用hibernate正常读取Blob,Clob了。