一.針對不是Oracle9i
1.
在sessionFactory中設置
<!-- 定義Hibernate的sessionFactory,通過該Bean,可以獲得Hibernate的Session-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="lobHandler">
<ref bean="lobHandler"/>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!--設置二級緩沖-->
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<!--設置二級緩沖,打開查詢緩沖-->
<prop key="hibernate.cache.use_query_cache">true</prop>
<!--設置顯示Hibernate操作的SQL語句-->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>
com/njwj/model/test.hbm.xml
</value>
</list>
</property>
</bean>
2.
<!-- 申明處理Clob對象LobHandler -->
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />
3.
在hibernate實體類配置中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="com.njwj.model">
<class name="LobHandlerTest" table="lobhandlertest">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="lobhandler" column="lobhandler" type="org.springframework.orm.hibernate3.support.ClobStringType" length="200"></property>
</class>
</hibernate-mapping>
name="lobhandler" 為實體類屬性 為String類型
column="lobhandler" 為數據庫字段為Clob類型
以上配置轉Clob結束
*.hbm.xml配置修改如下:
a:操作blob,java類的成員變量類型設置為byte[],映射文件設置為:
org.springframework.orm.hibernate3.support.BlobByteArrayType
b:操作clob,java類的成員變量類型設置為String,映射文件設置為:
org.springframework.orm.hibernate3.support.ClobStringType
使用的時候不用額外考慮,可以直接象平常使用就可以了。
posted on 2009-05-10 21:11
孤飛燕 閱讀(1035)
評論(0) 編輯 收藏 所屬分類:
Spring