七郎's JavaBlog

草木竹石皆可為劒。至人之用人若鏡,不將不迎,應而不藏,故能勝物而不傷。
posts - 60, comments - 14, trackbacks - 0, articles - 0

Hibernate+Oracle+CLOB的读写问题

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随便用了。 

Feedback

# re: Hibernate+Oracle+CLOB的读写问题   回复  更多评论   

2012-09-20 17:08 by 天梯图
不行啊··

# re: Hibernate+Oracle+CLOB的读写问题   回复  更多评论   

2012-09-20 17:08 by 天梯图
启动就报类型错误····

只有注册用户登录后才能发表评论。


网站导航: