From: <one...@us...> - 2002-12-17 09:43:21
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/impl In directory sc8-pr-cvs1:/tmp/cvs-serv32180/hibernate/impl Modified Files: SessionImpl.java Log Message: incremenet version number of object containing collection with a 'queued add' Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/impl/SessionImpl.java,v retrieving revision 1.158 retrieving revision 1.159 diff -C2 -d -r1.158 -r1.159 *** SessionImpl.java 15 Dec 2002 10:46:40 -0000 1.158 --- SessionImpl.java 17 Dec 2002 09:43:18 -0000 1.159 *************** *** 2243,2247 **** if ( !entry.initialized ) return false; ! if ( entry.dirty ) return true; CollectionPersister persister = getCollectionPersister( ( (PersistentCollectionType) type).getRole() ); --- 2243,2247 ---- if ( !entry.initialized ) return false; ! if ( entry.dirty || coll.hasQueuedAdds() ) return true; CollectionPersister persister = getCollectionPersister( ( (PersistentCollectionType) type).getRole() ); *************** *** 2249,2259 **** // if the collection contains other collections, and it has been (lazily) initialized, // check if _they_ are dirty ! ! Iterator iter = coll.elements(); ! ! while ( iter.hasNext() ) { ! Object object = iter.next(); ! Type eltType = persister.getElementType(); ! if ( searchForDirtyCollections(object, eltType) ) return true; } --- 2249,2262 ---- // if the collection contains other collections, and it has been (lazily) initialized, // check if _they_ are dirty ! ! Type eltType = persister.getElementType(); ! ! if ( eltType.isPersistentCollectionType() || eltType.isComponentType() ) { //optional performance opt ! ! Iterator iter = coll.elements(); ! while ( iter.hasNext() ) { ! if ( searchForDirtyCollections( iter.next(), eltType ) ) return true; ! } ! } |