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;
! }
!
}
|