Posted on 2007-04-16 15:36
七郎归来 阅读(652)
评论(2) 编辑 收藏
我的环境是Oracle9i2+hibernate3
使用原配的Oracle jdbc thin 驱动不能直接对clob对象进行直接操作。
google了无数文章,仿造别人的办法,先写入一个空的clob对象,再读出,再写入真正的clob对象。不行,在BLOB blob =(BLOB) myObject.getClob 这里的类型强制转化就会出现问题。
使用hibernate官方论坛里面的重写一个数据类型的方式,则是出现String长度的错误。还试了很多种办法,均失败。
据说,Oracle 9i 里的jdbc oci驱动可以解决上面的问题,但我已经没有兴趣再去折腾了。
最后到Oracle网站上面注册了一个账户,下载了最新的Oracle 10g的jdbc驱动。
一切就正常了。其实就是Oracle原来的驱动的问题。
使用新的驱动,这个问题就不再是问题了。
Hibernate+Oracle+CLOB的读写其实只要这样做:
1.在Oracle里设置某字段为clob类型。
2.在Hibernate的配置文件里使用网上下载的Oracle 10g最新的jdbc驱动。
3.实体类里把clob字段对应的属性类型设置为String。
4.hibernate的映射文件*.hbm.xml里把该字段对应的类型该为text。
然后就可以在程序里把它当成String随便用了。