1 package org.hibernate.test.component; 3 4 import java.util.Date ; 5 6 import junit.framework.Test; 7 import junit.framework.TestSuite; 8 9 import org.hibernate.Session; 10 import org.hibernate.Transaction; 11 import org.hibernate.criterion.Property; 12 import org.hibernate.dialect.HSQLDialect; 13 import org.hibernate.dialect.Oracle9Dialect; 14 import org.hibernate.dialect.PostgreSQLDialect; 15 import org.hibernate.test.TestCase; 16 17 20 public class ComponentTest extends TestCase { 21 22 public ComponentTest(String str) { 23 super(str); 24 } 25 26 public void testComponent() { 27 28 if ( getDialect() instanceof PostgreSQLDialect ) return; if ( getDialect() instanceof Oracle9Dialect ) return; 31 Session s = openSession(); 32 Transaction t = s.beginTransaction(); 33 User u = new User( "gavin", "secret", new Person("Gavin King", new Date (), "Karbarook Ave") ); 34 s.persist(u); 35 s.flush(); 36 u.getPerson().changeAddress("Phipps Place"); 37 t.commit(); 38 s.close(); 39 40 s = openSession(); 41 t = s.beginTransaction(); 42 u = (User) s.get(User.class, "gavin"); 43 assertEquals( u.getPerson().getAddress(), "Phipps Place" ); 44 assertEquals( u.getPerson().getPreviousAddress(), "Karbarook Ave" ); 45 assertEquals( u.getPerson().getYob(), u.getPerson().getDob().getYear()+1900 ); 46 u.setPassword("$ecret"); 47 t.commit(); 48 s.close(); 49 50 s = openSession(); 51 t = s.beginTransaction(); 52 u = (User) s.get(User.class, "gavin"); 53 assertEquals( u.getPerson().getAddress(), "Phipps Place" ); 54 assertEquals( u.getPerson().getPreviousAddress(), "Karbarook Ave" ); 55 assertEquals( u.getPassword(), "$ecret" ); 56 s.delete(u); 57 t.commit(); 58 s.close(); 59 } 60 61 public void testComponentFormulaQuery() { 62 63 if ( getDialect() instanceof PostgreSQLDialect ) return; if ( getDialect() instanceof Oracle9Dialect ) return; 66 Session s = openSession(); 67 Transaction t = s.beginTransaction(); 68 s.createQuery("from User u where u.person.yob = 1999").list(); 69 s.createCriteria(User.class) 70 .add( Property.forName("person.yob").between( new Integer (1999), new Integer (2002) ) ) 71 .list(); 72 if ( ! (getDialect() instanceof HSQLDialect) ) { 73 s.createQuery("from User u where u.person = ('gavin', :dob, 'Peachtree Rd', 'Karbarook Ave', 1974, 'Peachtree Rd')") 74 .setDate("dob", new Date ("March 25, 1974")).list(); 75 s.createQuery("from User where person = ('gavin', :dob, 'Peachtree Rd', 'Karbarook Ave', 1974, 'Peachtree Rd')") 76 .setDate("dob", new Date ("March 25, 1974")).list(); 77 } 78 t.commit(); 79 s.close(); 80 } 81 82 public void testNamedQuery() { 83 if ( getDialect() instanceof PostgreSQLDialect ) return; if ( getDialect() instanceof Oracle9Dialect ) return; 86 Session s = openSession(); 87 Transaction t = s.beginTransaction(); 88 s.getNamedQuery("userNameIn") 89 .setParameterList( "nameList", new Object [] {"1ovthafew", "turin", "xam"} ) 90 .list(); 91 t.commit(); 92 s.close(); 93 } 94 95 protected String [] getMappings() { 96 return new String [] { "component/User.hbm.xml" }; 97 } 98 99 public static Test suite() { 100 return new TestSuite(ComponentTest.class); 101 } 102 103 } 104 105 | Popular Tags |