天天看點

Hibernate session.clear()引起的一個問題

1、通過Hihernate先從資料庫裡面查找一個Ttable對象

2、儲存一個TableStat對象、并 執行了session.clear()的操作,清理了Session的緩存

3、重新儲存Ttable這個對象,出現了如下的錯誤:

org.hibernate.HibernateException: Found two representations of same collection:

com.lt.cms.hibernate.Ttable.tableStats

at org.hibernate.engine.Collections.processReachableCollection(Collections.java:153)

at org.hibernate.event.def.FlushVisitor.processCollection(FlushVisitor.java:37)

at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:101)

at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:61)

at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:55)

at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:124)

at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)

at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)

at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)

at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)

at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)

at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)