今天在一个项目中使用了Spring整合Hibernate下的saveOrUpdateAll(Collection collection)方法,但是程序在运行的过程中有时会抛出一个java.util.ConcurrentModificationException的异常,我对为什么会出现的这样的异常感到非常奇怪。
首先,我传给这个方法的参数是一个List的集合,其中是需要存储到数据库的对象,基本上可以确信没有其它的线程在同时处理这个集合。
其次,我在程序的外层通过一个DAO对象的方法调用了这个方法,调用之后对作为传入的List参数对象进行了clear()操作,例如:
DataDAO.save(list);
list.clear()
在save()方法中调用了
getHibernateTemplate().saveOrUpdateAll(list)
如果说改变了list集合,那也应该是执行了数据库操作之后才改变的呀!
如果不是这个原因的话,那会是什么原因导致这个异常抛出的呢?希望大家能知道一下,感激不尽!谢谢!