📄 astparserloadingtest.java
字号:
Mammal m2 = new Mammal(); m2.setBodyWeight( 9f ); m2.setDescription( "Mammal #2" ); m2.setMother( m1 ); session.save( m2 ); txn.commit(); session.close(); createdAnimalIds.add( m1.getId() ); createdAnimalIds.add( m2.getId() ); } private void destroyTestBaseData() { Session session = openSession(); Transaction txn = session.beginTransaction(); for ( int i = 0; i < createdAnimalIds.size(); i++ ) { Animal animal = ( Animal ) session.load( Animal.class, ( Long ) createdAnimalIds.get( i ) ); session.delete( animal ); } txn.commit(); session.close(); } public void testFromOnly() throws Exception { createTestBaseData(); Session session = openSession(); List results = session.createQuery( "from Animal" ).list(); assertEquals( "Incorrect result size", 2, results.size() ); assertTrue( "Incorrect result return type", results.get( 0 ) instanceof Animal ); session.close(); destroyTestBaseData(); } public void testSimpleSelect() throws Exception { createTestBaseData(); Session session = openSession(); List results = session.createQuery( "select a from Animal as a" ).list(); assertEquals( "Incorrect result size", 2, results.size() ); assertTrue( "Incorrect result return type", results.get( 0 ) instanceof Animal ); session.close(); destroyTestBaseData(); } public void testEntityPropertySelect() throws Exception { createTestBaseData(); Session session = openSession(); List results = session.createQuery( "select a.mother from Animal as a" ).list();// assertEquals("Incorrect result size", 2, results.size()); assertTrue( "Incorrect result return type", results.get( 0 ) instanceof Animal ); session.close(); destroyTestBaseData(); } public void testWhere() throws Exception { createTestBaseData(); Session session = openSession(); List results = null; results = session.createQuery( "from Animal an where an.bodyWeight > 10" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); results = session.createQuery( "from Animal an where not an.bodyWeight > 10" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); results = session.createQuery( "from Animal an where an.bodyWeight between 0 and 10" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); results = session.createQuery( "from Animal an where an.bodyWeight not between 0 and 10" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); results = session.createQuery( "from Animal an where sqrt(an.bodyWeight)/2 > 10" ).list(); assertEquals( "Incorrect result size", 0, results.size() ); results = session.createQuery( "from Animal an where (an.bodyWeight > 10 and an.bodyWeight < 100) or an.bodyWeight is null" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); session.close(); destroyTestBaseData(); } public void testEntityFetching() throws Exception { createTestBaseData(); Session session = openSession(); List results = session.createQuery( "from Animal an join fetch an.mother" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); assertTrue( "Incorrect result return type", results.get( 0 ) instanceof Animal ); Animal mother = ( ( Animal ) results.get( 0 ) ).getMother(); assertTrue( "fetch uninitialized", mother != null && Hibernate.isInitialized( mother ) ); results = session.createQuery( "select an from Animal an join fetch an.mother" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); assertTrue( "Incorrect result return type", results.get( 0 ) instanceof Animal ); mother = ( ( Animal ) results.get( 0 ) ).getMother(); assertTrue( "fetch uninitialized", mother != null && Hibernate.isInitialized( mother ) ); session.close(); destroyTestBaseData(); } public void testCollectionFetching() throws Exception { createTestBaseData(); Session session = openSession(); List results = session.createQuery( "from Animal an join fetch an.offspring" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); assertTrue( "Incorrect result return type", results.get( 0 ) instanceof Animal ); Collection os = ( ( Animal ) results.get( 0 ) ).getOffspring(); assertTrue( "fetch uninitialized", os != null && Hibernate.isInitialized( os ) && os.size() == 1 ); results = session.createQuery( "select an from Animal an join fetch an.offspring" ).list(); assertEquals( "Incorrect result size", 1, results.size() ); assertTrue( "Incorrect result return type", results.get( 0 ) instanceof Animal ); os = ( ( Animal ) results.get( 0 ) ).getOffspring(); assertTrue( "fetch uninitialized", os != null && Hibernate.isInitialized( os ) && os.size() == 1 ); session.close(); destroyTestBaseData(); } public void testProjectionQueries() throws Exception { createTestBaseData(); Session session = openSession(); List results = session.createQuery( "select an.mother.id, max(an.bodyWeight) from Animal an group by an.mother.id" ).list(); // mysql returns nulls in this group by assertEquals( "Incorrect result size", 2, results.size() ); assertTrue( "Incorrect return type", results.get( 0 ) instanceof Object[] ); assertEquals( "Incorrect return dimensions", 2, ( ( Object[] ) results.get( 0 ) ).length ); session.close(); destroyTestBaseData(); } public void testStandardFunctions() throws Exception { Session session = openSession(); Product p = new Product(); p.setDescription("a product"); p.setPrice( new BigDecimal(1.0) ); p.setProductId("abc123"); session.persist(p); Object[] result = (Object[]) session .createQuery("select current_time(), current_date(), current_timestamp() from Product") .uniqueResult(); assertTrue( result[0] instanceof Time ); assertTrue( result[1] instanceof Date ); assertTrue( result[2] instanceof Timestamp ); assertNotNull( result[0] ); assertNotNull( result[1] ); assertNotNull( result[2] ); session.delete(p); session.close(); } public void testDynamicInstantiationQueries() throws Exception { createTestBaseData(); Session session = openSession(); List results = session.createQuery( "select new Animal(an.description, an.bodyWeight) from Animal an" ).list(); assertEquals( "Incorrect result size", 2, results.size() ); assertTrue( "Incorrect return type", results.get( 0 ) instanceof Animal ); results = session.createQuery( "select new list(an.description, an.bodyWeight) from Animal an" ).list(); assertEquals( "Incorrect result size", 2, results.size() ); assertTrue( "Incorrect return type", results.get( 0 ) instanceof List ); assertEquals( "Incorrect return type", ( (List) results.get( 0 ) ).size(), 2 ); results = session.createQuery( "select new map(an.description, an.bodyWeight) from Animal an" ).list(); assertEquals( "Incorrect result size", 2, results.size() ); assertTrue( "Incorrect return type", results.get( 0 ) instanceof Map ); assertEquals( "Incorrect return type", ( (Map) results.get( 0 ) ).size(), 2 ); assertTrue( ( (Map) results.get( 0 ) ).containsKey("0") ); assertTrue( ( (Map) results.get( 0 ) ).containsKey("1") ); results = session.createQuery( "select new map(an.description as descr, an.bodyWeight as bw) from Animal an" ).list(); assertEquals( "Incorrect result size", 2, results.size() ); assertTrue( "Incorrect return type", results.get( 0 ) instanceof Map ); assertEquals( "Incorrect return type", ( (Map) results.get( 0 ) ).size(), 2 ); assertTrue( ( (Map) results.get( 0 ) ).containsKey("descr") ); assertTrue( ( (Map) results.get( 0 ) ).containsKey("bw") ); session.close(); destroyTestBaseData(); } public static Test suite() { TestSuite suite = new TestSuite( ASTParserLoadingTest.class ); return suite; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -