在hbm mapping中如果使用String形式,在生成库表时在Oracle中会被映射成“LONG”型或“VCHAR2(255 CHAR)”。
利用Spring可以解决这个问题,hbm如下:
xml 代码
- <property name="contents" type="org.springframework.orm.hibernate3.support.ClobStringType">
- <column name="CONTENTS" not-null="true" />
- property>
还要在Spring的配置文件中添加LOB处理器:
xml 代码
- <bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />
在sessionFactory中注入:
xml 代码
- <bean id="sessionFactory"
- <classclass="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource"><ref bean="dataSource" />property>
- <property name="lobHandler" ref="lobHandler" />
- ...
这样就可以在代码中用String或byte[]操作LOB了。