From: <hib...@li...> - 2006-03-07 14:24:49
|
Author: ste...@jb... Date: 2006-03-07 09:24:47 -0500 (Tue, 07 Mar 2006) New Revision: 9563 Modified: branches/Branch_3_1/Hibernate3/test/org/hibernate/test/propertyref/PropertyRefTest.java Log: test for HHH-1531 Modified: branches/Branch_3_1/Hibernate3/test/org/hibernate/test/propertyref/PropertyRefTest.java =================================================================== --- branches/Branch_3_1/Hibernate3/test/org/hibernate/test/propertyref/PropertyRefTest.java 2006-03-07 14:24:13 UTC (rev 9562) +++ branches/Branch_3_1/Hibernate3/test/org/hibernate/test/propertyref/PropertyRefTest.java 2006-03-07 14:24:47 UTC (rev 9563) @@ -26,30 +26,42 @@ public PropertyRefTest(String str) { super(str); } - + public void testManyToManyPropertyRef() { + // prepare some test data relating to the Group->Person many-to-many association Session s = openSession(); Transaction t = s.beginTransaction(); Person p = new Person(); - p.setName("Steve"); - p.setUserId("steve"); - s.persist(p); + p.setName( "Steve" ); + p.setUserId( "steve" ); + s.persist( p ); + Group g = new Group(); + g.setName( "Admins" ); + g.getUsers().add( p ); + s.persist( g ); + // force a flush and detachment here to test reattachment handling of the property-ref (HHH-1531) + t.commit(); + s.close(); + Person p2 = new Person(); - p2.setName("Max"); - p2.setUserId("max"); - s.persist(p2); - Group g = new Group(); - g.setName("Admins"); - g.getUsers().add(p); - g.getUsers().add(p2); - s.persist(g); - s.flush(); - s.clear(); - g = (Group) s.createQuery("from Group g left join fetch g.users").uniqueResult(); + p2.setName( "Max" ); + p2.setUserId( "max" ); + g.getUsers().add( p2 ); + + s = openSession(); + t = s.beginTransaction(); + s.update( g ); + t.commit(); + s.close(); + + // test retrieval of the group + s = openSession(); + t = s.beginTransaction(); + g = ( Group ) s.createQuery( "from Group g left join fetch g.users" ).uniqueResult(); assertTrue( Hibernate.isInitialized( g.getUsers() ) ); assertEquals( 2, g.getUsers().size() ); - s.delete(g); - s.createQuery("delete Person").executeUpdate(); + s.delete( g ); + s.createQuery( "delete Person" ).executeUpdate(); t.commit(); s.close(); } |