1 package org.hibernate.test.joineduid; 3 4 import junit.framework.Test; 5 import junit.framework.TestSuite; 6 7 import org.hibernate.FetchMode; 8 import org.hibernate.Hibernate; 9 import org.hibernate.Session; 10 import org.hibernate.Transaction; 11 import org.hibernate.test.TestCase; 12 13 16 public class PropertyRefTest extends TestCase { 17 18 public PropertyRefTest(String str) { 19 super(str); 20 } 21 22 public void testPropertyRefToJoinedSubclass() { 23 Session session = openSession(); 24 Transaction tx = session.beginTransaction(); 25 Person p = new Person(); 26 p.setName("Gavin King"); 27 BankAccount acc = new BankAccount(); 28 acc.setBsb("0634"); 29 acc.setType('B'); 30 acc.setAccountNumber("xxx-123-abc"); 31 p.setBankAccount(acc); 32 session.persist(p); 33 tx.commit(); 34 session.close(); 35 36 session = openSession(); 37 tx = session.beginTransaction(); 38 p = (Person) session.get(Person.class, p.getId()); 39 assertNotNull( p.getBankAccount() ); 40 assertTrue( Hibernate.isInitialized( p.getBankAccount() ) ); 41 tx.commit(); 42 session.close(); 43 44 session = openSession(); 45 tx = session.beginTransaction(); 46 p = (Person) session.createCriteria(Person.class) 47 .setFetchMode("bankAccount", FetchMode.JOIN) 48 .uniqueResult(); 49 assertNotNull( p.getBankAccount() ); 50 assertTrue( Hibernate.isInitialized( p.getBankAccount() ) ); 51 tx.commit(); 52 session.close(); 53 54 session = openSession(); 55 tx = session.beginTransaction(); 56 session.delete(p); 57 tx.commit(); 58 session.close(); 59 } 60 61 protected String [] getMappings() { 62 return new String [] { "joineduid/Person.hbm.xml" }; 63 } 64 65 public static Test suite() { 66 return new TestSuite(PropertyRefTest.class); 67 } 68 69 } 70 71 | Popular Tags |