public void testTransientEntityDeletionCascadingToDetachedAssociation() { Session s = openSession(); Transaction t = s.beginTransaction(); Address address = new Address(); address.setInfo( "123 Main St." ); s.save( address ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); Person p = new Person(); p.getAddresses().add( address ); s.delete( p ); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); Long count = ( Long ) s.createQuery( "select count(*) from Address" ).list().get( 0 ); assertEquals( "delete not cascaded properly across transient entity", 0, count.longValue() ); t.commit(); s.close();
public void testCascadeSave() throws Exception { Session s = openSession(); Transaction t = s.beginTransaction(); Baz baz = new Baz(); List list = new ArrayList(); list.add( new Fee() ); list.add( new Fee() ); baz.setFees(list); s.save(baz); t.commit(); s.close(); s = openSession(); t = s.beginTransaction(); baz = (Baz) s.load( Baz.class, baz.getCode() ); assertTrue( baz.getFees().size()==2 ); s.delete(baz); assertTrue( !s.iterate("from Fee fee").hasNext() ); t.commit(); s.close();
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/deletetransient/DeleteTransientEntityTest.java File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/legacy/FooBarTest.java
Method name: Method name:
Number of AST nodes: 0 Number of AST nodes: 0
1
public void testTransientEntityDeletionCascadingToDetachedAssociation() {
1
public void testCascadeSave() throws Exception {
2
		Session s = openSession();
2
		Session s = openSession();
3
		Transaction t = s.beginTransaction();
3
		Transaction t = s.beginTransaction();
4
		Address address = new Address();
4
		Baz baz = new Baz();
5
		address.setInfo( "123 Main St." );
5
		
6
		s.save( address );
7
		t.commit();
6
List list = new ArrayList();
8
		s.close();
7
		
9
		s = openSession();
10
		t = s.beginTransaction();
11
		Person p = new Person();
12
		p.getAddresses().add( address 
8
list.add( new Fee() );
9
		list.add( new Fee() );
13
);
10
		baz.setFees(list);
14
		s.delete( p );
11
		s.save(baz);
15
		t.commit();
12
		t.commit();
16
		s.close();
13
		s.close();
17

18
		s = openSession();
14
		s = openSession();
19
		t = s.beginTransaction();
15
		t = s.beginTransaction();
20
		Long count = ( Long ) s.createQuery( "select count(*) from Address" ).list().get( 0 );
16
		baz = (Baz) s.load( Baz.class, baz.getCode() );
21
		assertEquals( "delete not cascaded properly across transient entity", 0, count.longValue
17
		assertTrue( baz.getFees().size()==2 );
18
		s.delete(baz);
22
() );
19
		assertTrue( !s.iterate("from Fee fee").hasNext() );
23
		t.commit();
20
		t.commit();
24
		s.close();
21
		s.close();
25
	
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones location
Number of node comparisons0