private Clob DocContent;==>private String DocContent;
<property name="DocContent" type="clob" update="true" insert="true" />==><property name="DocContent" type="java.lang.String" update="true" insert="true" />不过我的DocContent取出来却是null,郁闷ing……
<property name="DocContent" type="clob" update="true" insert="true" />==><property name="DocContent" type="java.lang.String" update="true" insert="true" />不过我的DocContent取出来却是null,郁闷ing……
1。也是最基本的clob的存取,实际上和jdbc实现原来差不多。这种代码在网上有很多,先创建一个空clob,然后在向其中写入数据,这个估计你也能找到。2。利用Spring实现
将String类型在hbm文件中对应org.springframework.orm.hibernate.support.ClobStringType来实现。具体需要在Spring配置文件中配置
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor"><ref local="nativeJdbcExtractor"/></property>
</bean>
等,这个你具体找下网上的帮助就可以了。3。自己定义个类型来对应,这是利用hibernate来自己定义类型(继承它的UserType类)。hibernate的wiki中有一篇文章叫做《Using Clobs/Blobs with Oracle and Hibernate》,里面写的非常详细。(具体地址我记不清楚了,但是文档我已经下到硬盘里了)实际上这种方法和第二种相差不多。只不过第二种实际上用的是Spring来继承的hibernate进行自定义类型的写法。对于2,3方法,一般都需要用oracle9才能支持,而且要9.2.0.0以上版本的jdbc驱动才可以。oracle的驱动很是麻烦,感觉比mysql强不到哪去。至于oracle10G嘛,据说是可以直接对clob进行存取,我没装过(很久不用oracle了),不敢断言,你可以试试看。
具体做法:
映射文件中如下:
<property name="DocContent" type="text" not-null="true"/>
lib下:
加入ojdbc14.jar替换低版本的jar包。