From: <hib...@li...> - 2006-05-24 21:44:03
|
Author: ste...@jb... Date: 2006-05-24 17:43:29 -0400 (Wed, 24 May 2006) New Revision: 9945 Modified: trunk/Hibernate3/src/org/hibernate/engine/CascadingAction.java trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java Log: HHH-1779 : minor Modified: trunk/Hibernate3/src/org/hibernate/engine/CascadingAction.java =================================================================== --- trunk/Hibernate3/src/org/hibernate/engine/CascadingAction.java 2006-05-24 21:14:56 UTC (rev 9944) +++ trunk/Hibernate3/src/org/hibernate/engine/CascadingAction.java 2006-05-24 21:43:29 UTC (rev 9945) @@ -46,9 +46,7 @@ if ( log.isTraceEnabled() ) { log.trace("cascading to delete: " + entityName); } -// if ( ForeignKeys.isNotTransient(entityName, child, null, session) ) { - session.delete( entityName, child, isCascadeDeleteEnabled, ( Set ) anything ); -// } + session.delete( entityName, child, isCascadeDeleteEnabled, ( Set ) anything ); } public Iterator getCascadableChildrenIterator(EventSource session, CollectionType collectionType, Object collection) { // delete does cascade to uninitialized collections Modified: trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java =================================================================== --- trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java 2006-05-24 21:14:56 UTC (rev 9944) +++ trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java 2006-05-24 21:43:29 UTC (rev 9945) @@ -56,29 +56,27 @@ final PersistenceContext persistenceContext = source.getPersistenceContext(); Object entity = persistenceContext.unproxyAndReassociate( event.getObject() ); - EntityEntry entityEntry = persistenceContext.getEntry(entity); - + EntityEntry entityEntry = persistenceContext.getEntry( entity ); final EntityPersister persister; final Serializable id; final Object version; + if ( entityEntry == null ) { - log.trace( "deleting a detached instance" ); + log.trace( "entity was not persistent in delete processing" ); persister = source.getEntityPersister( event.getEntityName(), entity ); + if ( ForeignKeys.isTransient( persister.getEntityName(), entity, null, source ) ) { + deleteTransientEntity( source, entity, event.isCascadeDeleteEnabled(), persister, transientEntities ); + // EARLY EXIT!!! + return; + } + id = persister.getIdentifier( entity, source.getEntityMode() ); if ( id == null ) { -// throw new TransientObjectException( -// "the detached instance passed to delete() had a null identifier" -// ); - if ( ForeignKeys.isNotTransient( persister.getEntityName(), entity, null, source ) ) { - throw new TransientObjectException( "the detached instance passed to delete() had a null identifier" ); - } - else { - deleteTransientEntity( source, entity, event.isCascadeDeleteEnabled(), persister, transientEntities ); - // EARLY EXIT!!! - return; - } + throw new TransientObjectException( + "the detached instance passed to delete() had a null identifier" + ); } EntityKey key = new EntityKey( id, persister, source.getEntityMode() ); |