[hibernate-commits] Hibernate SVN: r19959 - core/trunk/testsuite/src/test/java/org/hibernate/test/orphan/one2one/fk/reversed/unidirectional.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Jul 15 19:47:33 EDT 2010


Author: gbadner
Date: 2010-07-15 19:47:32 -0400 (Thu, 15 Jul 2010)
New Revision: 19959

Modified:
   core/trunk/testsuite/src/test/java/org/hibernate/test/orphan/one2one/fk/reversed/unidirectional/DeleteOneToOneOrphansTest.java
Log:
HHH-5267 : Added FailureExpected test for updating one-to-one mapped as delete-orphan while detached

Modified: core/trunk/testsuite/src/test/java/org/hibernate/test/orphan/one2one/fk/reversed/unidirectional/DeleteOneToOneOrphansTest.java
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/orphan/one2one/fk/reversed/unidirectional/DeleteOneToOneOrphansTest.java	2010-07-15 23:35:54 UTC (rev 19958)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/orphan/one2one/fk/reversed/unidirectional/DeleteOneToOneOrphansTest.java	2010-07-15 23:47:32 UTC (rev 19959)
@@ -89,4 +89,44 @@
 
 		cleanupData();
 	}
+
+	public void testOrphanedWhileDetachedFailureExpected() {
+		createData();
+
+		Session session = openSession();
+		session.beginTransaction();
+		List results = session.createQuery( "from EmployeeInfo" ).list();
+		assertEquals( 1, results.size() );
+		results = session.createQuery( "from Employee" ).list();
+		assertEquals( 1, results.size() );
+		Employee emp = ( Employee ) results.get( 0 );
+		assertNotNull( emp.getInfo() );
+
+		//only fails if the object is detached
+		session.getTransaction().commit();
+		session.close();
+		session = openSession();
+		session.beginTransaction();
+
+		emp.setInfo( null );
+
+		//save using the new session (this used to work prior to 3.5.x)
+		session.saveOrUpdate(emp);
+
+		session.getTransaction().commit();
+		session.close();
+
+		session = openSession();
+		session.beginTransaction();
+		emp = ( Employee ) session.get( Employee.class, emp.getId() );
+		assertNull( emp.getInfo() );
+		results = session.createQuery( "from EmployeeInfo" ).list();
+		assertEquals( 0, results.size() );
+		results = session.createQuery( "from Employee" ).list();
+		assertEquals( 1, results.size() );
+		session.getTransaction().commit();
+		session.close();
+
+		cleanupData();
+	}
 }
\ No newline at end of file



More information about the hibernate-commits mailing list