解决hibernate中不能正常使用blog类型字段上传数据的问题

本文记录了一次在使用公司控件上传附件时遇到的错误排查过程。主要问题是数据库中的Blob字段无法正常写入,通过调整Hibernate配置中的批量更新参数设置为0解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      今天在使用公司的控件上传附件时,提示出错,检查数据库后发现其它字段都没有问题,只有blob的字段不能正常写入,在日志中出现如下错误:

2008-10-15 09:51:57,204 WARN  (JDBCExceptionReporter.java:71) - SQL Error: 17090, SQLState: null
2008-10-15 09:51:57,205 ERROR (JDBCExceptionReporter.java:72) - 不允许的操作: streams type cannot be used in batching
2008-10-15 09:51:57,211 ERROR (AbstractFlushingEventListener.java:277) - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not update: [net.risesoft.components.risefile.RiseFile#{7F000001-FFFF-FFFF-FE32-C2E300000001}]

     我首先在自己的机器上把服务跑了一遍,发现没问题,又把服务器上的服务下到本机在试了一遍,还是没问题,所以暂时确定为代码没有问题.

     然后,怀疑是包冲突,在百度上搜了一下(在这里我要批评一下了,国内的技术网站大多是跟贴的,找到类似的问题,也没有解决办法),有人说是echace的包和hibernate的包有冲突,我就把echace的包给删掉了,试了一下,呵呵,结果程序运不能运行了,因为hibernate要用到echance的包,没包法又给复制回去了.

     最后,我在Google上又搜了一下,终于在hibernate的官方论动上找到了解决办法,将批量更新的参数设置成0就可以了,即

<property name="hibernate.jdbc.batch_size">0</property> .

我下面把贴子的地址贴出来,有同样问题的人可以参考一下,http://forum.hibernate.org/viewtopic.php?t=924665&highlight=oracle+blob

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值