streams type cannot be used in batching

寻道的 Programmer
博客专家认证
2010-11-28 05:17:23
如题,我是从word中读取数据,然后再把数据添加到数据库中,所以数据量很大,百度了一下,发现出现这个SQL异常的很多,但提供的两种方案,在我这都不好使,我将hibernate.jdbc.batch_size设为0,出现的SQL异常时‘无法从套接字读取更多的数据
’,后来又设置了hibernate.jdbc.use_streams_for_binary为true,没有效果!又有人说要引用第三方jar驱动,oracle自带的不好使!

备注环境:
db: oralce9i
dbdriver: oracle.jdbc.sql.OracleDriver
Hibernate: Hibernate3.3
App:Tomcat

<property name="biography" type="text">
<column name="BIOGRAPHY" not-null="true" />
</property>


数据库相应的字段类型是CLOB

...全文
689 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
成功阶梯 2013-06-08
  • 打赏
  • 举报
回复
你好,看你以前发的帖子关于“streams type cannot be used in batching”的解决办法,但是连接都已经失效,能否说一下方法,感激不尽
时光不等仁 2013-02-25
  • 打赏
  • 举报
回复
额,那个链接不好用啊?到底是怎么解决的啊?
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:

至于为什么会出现这样的问题,我最终也了解到了原因,因为Orcale的Clob类型是采用流操作进行CRUD的,而当数据量过多的时候,进行增加和修改的时候,hibernate会采用批次更新,而流类型不允许批次更新,这样就会报出这样一个异常,最简单的解决办法就是把batch_size设置为0,batch_size代表批次大小,设为0之后就不会采用批次更新了,但这样做显然……
[/Quote]
好久了,看这个链接吧。http://blog.renren.com/blog/bp/Qm3AlogSmb
hb89nihao 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

至于为什么会出现这样的问题,我最终也了解到了原因,因为Orcale的Clob类型是采用流操作进行CRUD的,而当数据量过多的时候,进行增加和修改的时候,hibernate会采用批次更新,而流类型不允许批次更新,这样就会报出这样一个异常,最简单的解决办法就是把batch_size设置为0,batch_size代表批次大小,设为0之后就不会采用批次更新了,但这样做显然是不可取的,对一个要求性能高的系……
[/Quote]
请问楼主是怎么解决的?能否给个解决问题的链接给我?谢谢!
  • 打赏
  • 举报
回复
至于为什么会出现这样的问题,我最终也了解到了原因,因为Orcale的Clob类型是采用流操作进行CRUD的,而当数据量过多的时候,进行增加和修改的时候,hibernate会采用批次更新,而流类型不允许批次更新,这样就会报出这样一个异常,最简单的解决办法就是把batch_size设置为0,batch_size代表批次大小,设为0之后就不会采用批次更新了,但这样做显然是不可取的,对一个要求性能高的系统来说,会大大增加处理时间,所以我们应该换用一种方式,这是我的理解!
解决方案:参见http://blog.renren.com/blog/bp/Qm3Alom0Or
  • 打赏
  • 举报
回复
问题终于自己解决!
weiyongtaohi 2010-11-30
  • 打赏
  • 举报
回复
呵呵 很好 有什么问题我们可以QQ交流
  • 打赏
  • 举报
回复
好冷清!
  • 打赏
  • 举报
回复
顶!!!祝福身体健康!!!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧