Author: epbernard
Date: 2006-09-06 10:07:22 -0400 (Wed, 06 Sep 2006)
New Revision: 10458
Modified:
branches/Branch_3_2/Hibernate3/src/org/hibernate/engine/CascadingAction.java
Log:
EJB-221
Modified: branches/Branch_3_2/Hibernate3/src/org/hibernate/engine/CascadingAction.java
===================================================================
---
branches/Branch_3_2/Hibernate3/src/org/hibernate/engine/CascadingAction.java 2006-09-06
13:51:50 UTC (rev 10457)
+++
branches/Branch_3_2/Hibernate3/src/org/hibernate/engine/CascadingAction.java 2006-09-06
14:07:22 UTC (rev 10458)
@@ -11,6 +11,7 @@
import org.hibernate.LockMode;
import org.hibernate.ReplicationMode;
import org.hibernate.TransientObjectException;
+import org.hibernate.proxy.HibernateProxy;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.collection.PersistentCollection;
import org.hibernate.event.EventSource;
@@ -344,7 +345,9 @@
if ( type.isEntityType() ) {
String childEntityName = ( ( EntityType ) type ).getAssociatedEntityName(
session.getFactory() );
- if ( ! isInManagedState( child, session ) && ForeignKeys.isTransient(
childEntityName, child, null, session ) ) {
+ if ( ! isInManagedState( child, session )
+ && ! ( child instanceof HibernateProxy ) //a proxy cannot be transient and
it breaks ForeignKeys.isTransient
+ && ForeignKeys.isTransient( childEntityName, child, null, session ) ) {
String parentEntiytName = persister.getEntityName();
String propertyName = persister.getPropertyNames()[propertyIndex];
throw new TransientObjectException(
Show replies by date