在做项目的时候遇到一个问题,SSH框架,连接mysql数据库,在java代码中要执行一个存储过程,但是每次执行这个存储过程之前要是有hibernate执行原生sql语句的update、insert或者delete就会报错:
Lock wait timeout exceeded; try restarting transaction
刚开始一直不知道原因,因为以前连接的oracle数据库,感觉应该没问题的,但是现在就是一直报这个错误;通过网上查找,说这个错误是因为数据库的事务没提交,在第二次在执行delete或者update的时候就会报这个错。确实在我的存储过程中就有insert的语句。
解决办法:
在hibernate里面的执行原生sql的方法里面:
红色框出来的是我后来加上的,我知道这儿肯定有其他方法去提交,但是目前我的解决办法就只是这样了。