From: <hib...@li...> - 2006-05-31 22:03:35
|
Author: ste...@jb... Date: 2006-05-31 18:03:16 -0400 (Wed, 31 May 2006) New Revision: 9975 Modified: trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java Log: added hook for HEM to affect deletion of detached entity Modified: trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java =================================================================== --- trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java 2006-05-31 18:01:41 UTC (rev 9974) +++ trunk/Hibernate3/src/org/hibernate/event/def/DefaultDeleteEventListener.java 2006-05-31 22:03:16 UTC (rev 9975) @@ -65,11 +65,15 @@ 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; } + else { + performDetachedEntityDeletionCheck( event ); + } id = persister.getIdentifier( entity, source.getEntityMode() ); @@ -128,6 +132,11 @@ } } + protected void performDetachedEntityDeletionCheck(DeleteEvent event) { + // ok in normal Hibernate usage to delete a detached entity; JPA however + // forbids it, thus this is a hook for HEM to affect this behavior + } + /** * We encountered a delete request on a transient instance. * <p/> |