hibernate的Could not execute JDBC batch update错误原因及处理

最近在web开发过程中遇到了一个错误困扰了我两天,Could not execute JDBC batch update,在进行数据库中表的更新时 总是报这个异常,网上说是不能进行批量更新,可是我的表命名就可以啊,这个问题一直困扰我,并且下面异常的Caused by:报的空指针,可是我的数据明明传了进去,这就让我更疑惑了。后来经过我无数次的搜索之后终于知道了错误我的代码

session.put("mid",model.getMid());
        introduceService.delete(model.getMid());
     
        signService.delete(model.getMid());
       
        matchService.delete(model.getMid());

因为我同时进行了三个删除操作,这在数据库的操作中涉及到事务的操作,在上一个操作完成后但是还没提交,如果到下一个操作如果出现故障,事务就会出现异常,所以才会包那个错误,不能批量操作,并不是数据库表的问题,所以遇到这种情况只需要把上面的代码改为

session.put("mid",model.getMid());
        introduceService.delete(model.getMid());
        hibernateTemplate.flush();
        signService.delete(model.getMid());
        hibernateTemplate.flush();
        matchService.delete(model.getMid());在每个操作之间加一条  hibernateTemplate.flush();语句就可以了  hibernateTemplate.flush();语句的错误就是在你进行往一个操作后提交(相当于commit)

这也是我自己研究的,现在分享一下,希望可以帮到大家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值