[hibernate-commits] Hibernate SVN: r18569 - core/trunk/core/src/main/java/org/hibernate/cfg.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Sat Jan 16 16:04:35 EST 2010


Author: steve.ebersole at jboss.com
Date: 2010-01-16 16:04:34 -0500 (Sat, 16 Jan 2010)
New Revision: 18569

Modified:
   core/trunk/core/src/main/java/org/hibernate/cfg/HbmBinder.java
Log:
HHH-4726 - Add support for delete-orphan cascading to <one-to-one/>


Modified: core/trunk/core/src/main/java/org/hibernate/cfg/HbmBinder.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/cfg/HbmBinder.java	2010-01-16 20:27:04 UTC (rev 18568)
+++ core/trunk/core/src/main/java/org/hibernate/cfg/HbmBinder.java	2010-01-16 21:04:34 UTC (rev 18569)
@@ -1621,7 +1621,9 @@
 		String cascade = node.attributeValue( "cascade" );
 		if ( cascade != null && cascade.indexOf( "delete-orphan" ) >= 0 ) {
 			if ( !manyToOne.isLogicalOneToOne() ) {
-				throw new MappingException( "many-to-one attributes do not support orphan delete: " + path );
+				throw new MappingException(
+						"many-to-one attribute [" + path + "] does not support orphan delete as it is not unique"
+				);
 			}
 		}
 	}
@@ -1688,6 +1690,15 @@
 		oneToOne.setPropertyName( node.attributeValue( "name" ) );
 
 		oneToOne.setReferencedEntityName( getEntityName( node, mappings ) );
+
+		String cascade = node.attributeValue( "cascade" );
+		if ( cascade != null && cascade.indexOf( "delete-orphan" ) >= 0 ) {
+			if ( oneToOne.isConstrained() ) {
+				throw new MappingException(
+						"one-to-one attribute [" + path + "] does not support orphan delete as it is constrained"
+				);
+			}
+		}
 	}
 
 	public static void bindOneToMany(Element node, OneToMany oneToMany, Mappings mappings)



More information about the hibernate-commits mailing list