1 package org.hibernate.test.component; 2 3 import java.util.HashMap ; 4 import java.util.List ; 5 6 import org.hibernate.classic.Session; 7 import org.hibernate.test.TestCase; 8 9 public class DynamicComponentTest extends TestCase { 10 11 public DynamicComponentTest(String x) { 12 super(x); 13 } 14 15 public void testQuery() throws Exception { 16 Session session = openSession(); 17 18 A a = new A(1); 19 a.setDynComp(new HashMap ()); 20 a.getDynComp().put("a", "a-a"); 21 session.save(a); 22 23 B b = new B(2); 24 b.setDynComp(new HashMap ()); 25 b.getDynComp().put("a", "b-a"); 26 b.getDynComp().put("b", "b-b"); 27 session.save(b); 28 29 C c = new C(3); 30 c.setDynComp(new HashMap ()); 31 c.getDynComp().put("a", "c-a"); 32 c.getDynComp().put("b", "c-b"); 33 c.getDynComp().put("c", "c-c"); 34 session.save(c); 35 36 session.flush(); 37 38 List list = session.createQuery("from A a where a.dynComp.a = ?") 39 .setParameter(0, "a-a") 40 .list(); 41 42 assertEquals(1, list.size()); 43 assertTrue(a.equals(list.get(0))); 44 45 list = session.createQuery("from B b where b.dynComp.b = ?") 46 .setParameter(0, "b-b") 47 .list(); 48 49 assertEquals(1, list.size()); 50 assertTrue(b.equals(list.get(0))); 51 52 list = session.createQuery("from B b where b.dynComp.a = ?") 53 .setParameter(0, "b-a") 54 .list(); 55 56 assertEquals(1, list.size()); 57 assertTrue(b.equals(list.get(0))); 58 59 list = session.createQuery("from C c where c.dynComp.c = ?") 60 .setParameter(0, "c-c") 61 .list(); 62 63 list = session.createQuery("from C c where c.dynComp.b = ?") 64 .setParameter(0, "c-b") 65 .list(); 66 67 list = session.createQuery("from C c where c.dynComp.a = ?") 68 .setParameter(0, "c-a") 69 .list(); 70 71 assertEquals(1, list.size()); 72 assertTrue(c.equals(list.get(0))); 73 74 session.delete(c); 75 session.delete(b); 76 session.delete(a); 77 session.close(); 78 } 79 80 protected String [] getMappings() { 81 return new String [] { "component/ABC.hbm.xml" }; 82 } 83 84 } 85 | Popular Tags |