通过hibernateTemplate从数据库查询出来的是一个list,然后通过循环来修改list里面每一个对象的属性值,只能第一个,然后就报错了,怎么回事啊??
9 个解决方案
#1
报什么错???
#2
把错误也贴出来看看啊
#3
看看你list获得的数量对不
#4
报错就是无法锁定资源。数据库那的sql语句没法发出去。list里面获取到的数量是正确的。
但是如果按照我上面那个程序执行的话,只能修改list里的第一条记录然后就报错了。
不过我查找了一下现在解决了,在那里循环更新的时候是不能使用update的,我也不知道为什么。
反正我用了merge就解决了。觉得可能用saveorupdate也能解决问题,但是还没试过。感谢各位大侠热心相助!!!!!!!
但是如果按照我上面那个程序执行的话,只能修改list里的第一条记录然后就报错了。
不过我查找了一下现在解决了,在那里循环更新的时候是不能使用update的,我也不知道为什么。
反正我用了merge就解决了。觉得可能用saveorupdate也能解决问题,但是还没试过。感谢各位大侠热心相助!!!!!!!
#5
应该是两个session的问题,你的某条数据在两个session中(也就是前一个session还没关闭,后一个已经打开)。
#6
如果你在某个action中,去掉其他的数据库操作,只做查询list和update,肯定是没有错的。
你应该修改其他的代码。
你应该修改其他的代码。
#7
那个代码能够修改list一条记录,那是不是打开session修改了那条记录之后还没有关闭就又修改另外一条?这个hibernateTamplate执行完了以后应该会自动关闭session的啊。
#8
应该是循环里一条都没执行成功!!
#9
不是的,是可以成功修改一条数据的,循环到第二条数据要更新的时候才报错的。我对照着数据库来测试的。我上面的action是没有别的语句操作数据库的,只有一条语句调用下面底层的这个方法。我也很纳闷怎么会出现这种情况。
#1
报什么错???
#2
把错误也贴出来看看啊
#3
看看你list获得的数量对不
#4
报错就是无法锁定资源。数据库那的sql语句没法发出去。list里面获取到的数量是正确的。
但是如果按照我上面那个程序执行的话,只能修改list里的第一条记录然后就报错了。
不过我查找了一下现在解决了,在那里循环更新的时候是不能使用update的,我也不知道为什么。
反正我用了merge就解决了。觉得可能用saveorupdate也能解决问题,但是还没试过。感谢各位大侠热心相助!!!!!!!
但是如果按照我上面那个程序执行的话,只能修改list里的第一条记录然后就报错了。
不过我查找了一下现在解决了,在那里循环更新的时候是不能使用update的,我也不知道为什么。
反正我用了merge就解决了。觉得可能用saveorupdate也能解决问题,但是还没试过。感谢各位大侠热心相助!!!!!!!
#5
应该是两个session的问题,你的某条数据在两个session中(也就是前一个session还没关闭,后一个已经打开)。
#6
如果你在某个action中,去掉其他的数据库操作,只做查询list和update,肯定是没有错的。
你应该修改其他的代码。
你应该修改其他的代码。
#7
那个代码能够修改list一条记录,那是不是打开session修改了那条记录之后还没有关闭就又修改另外一条?这个hibernateTamplate执行完了以后应该会自动关闭session的啊。
#8
应该是循环里一条都没执行成功!!
#9
不是的,是可以成功修改一条数据的,循环到第二条数据要更新的时候才报错的。我对照着数据库来测试的。我上面的action是没有别的语句操作数据库的,只有一条语句调用下面底层的这个方法。我也很纳闷怎么会出现这种情况。