我为一些导致本地数据库上的数据更改的方法定义了一个@PostUpdate
和一个@PostPersist
实体监听器。
但是,当Hibernate尝试将更改刷新到数据库中时,会抛出ConcurrentModificationException
。更具体地说,异常发生在它持续存在新的"集合" (即一对多实体)。
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:353)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:279)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1214)
at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:986)
我在这里也发现了一个相关的问题:https://hibernate.atlassian.net/browse/HHH-7537。不幸的是,似乎此问题已经 CLOSED ,解决方案标记为:无法重现。
有没有其他人遇到过这个问题并找到解决办法?