FileDocCategorySizeDatePackage
PartialComponentPropertyRefTest.javaAPI DocHibernate 3.2.52189Tue Dec 12 16:22:26 GMT 2006org.hibernate.test.propertyref.component.partial

PartialComponentPropertyRefTest

public class PartialComponentPropertyRefTest extends org.hibernate.junit.functional.FunctionalTestCase
author
Gavin King

Fields Summary
Constructors Summary
public PartialComponentPropertyRefTest(String name)

		super( name );
	
Methods Summary
public java.lang.String[]getMappings()

		return new String[] { "propertyref/component/partial/Mapping.hbm.xml" };
	
public static junit.framework.Testsuite()

		return new FunctionalTestClassTestSuite( PartialComponentPropertyRefTest.class );
	
public voidtestComponentPropertyRef()

		Person p = new Person();
		p.setIdentity( new Identity() );
		Account a = new Account();
		a.setNumber("123-12345-1236");
		a.setOwner(p);
		p.getIdentity().setName("Gavin");
		p.getIdentity().setSsn("123-12-1234");
		Session s = openSession();
		Transaction tx = s.beginTransaction();
		s.persist(p);
		s.persist(a);
		s.flush();
		s.clear();
		
		a = (Account) s.createQuery("from Account a left join fetch a.owner").uniqueResult();
		assertTrue( Hibernate.isInitialized( a.getOwner() ) );
		assertNotNull( a.getOwner() );
		assertEquals( "Gavin", a.getOwner().getIdentity().getName() );
		s.clear();
		
		a = (Account) s.get(Account.class, "123-12345-1236");
		assertFalse( Hibernate.isInitialized( a.getOwner() ) );
		assertNotNull( a.getOwner() );
		assertEquals( "Gavin", a.getOwner().getIdentity().getName() );
		assertTrue( Hibernate.isInitialized( a.getOwner() ) );
		
		s.clear();
		
		getSessions().evict(Account.class);
		getSessions().evict(Person.class);
		
		a = (Account) s.get(Account.class, "123-12345-1236");
		assertTrue( Hibernate.isInitialized( a.getOwner() ) );
		assertNotNull( a.getOwner() );
		assertEquals( "Gavin", a.getOwner().getIdentity().getName() );
		assertTrue( Hibernate.isInitialized( a.getOwner() ) );
		
		s.delete( a );
		s.delete( a.getOwner() );
		tx.commit();
		s.close();