⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 astparserloadingtest.java

📁 hibernate-distribution-3.3.1.GA-dist.zip源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		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();		Transaction t = session.beginTransaction();		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);		t.commit();		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() );		assertClassAssignability( results.get( 0 ).getClass(), Animal.class );		Iterator iter = session.createQuery( "select new Animal(an.description, an.bodyWeight) from Animal an" ).iterate();		assertTrue( "Incorrect result size", iter.hasNext() );		assertTrue( "Incorrect return type", iter.next() 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 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 );		iter = session.createQuery( "select new list(an.description, an.bodyWeight) from Animal an" ).iterate();		assertTrue( "Incorrect result size", iter.hasNext() );		Object obj = iter.next();		assertTrue( "Incorrect return type", obj instanceof List );		assertEquals( "Incorrect return type", ( (List) obj ).size(), 2 );		iter = ((org.hibernate.classic.Session)session).iterate( "select new list(an.description, an.bodyWeight) from Animal an" );		assertTrue( "Incorrect result size", iter.hasNext() );		obj = iter.next();		assertTrue( "Incorrect return type", obj instanceof List );		assertEquals( "Incorrect return type", ( (List) obj ).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") );		iter = session.createQuery( "select new map(an.description, an.bodyWeight) from Animal an" ).iterate();		assertTrue( "Incorrect result size", iter.hasNext() );		obj = iter.next();		assertTrue( "Incorrect return type", obj instanceof Map );		assertEquals( "Incorrect return type", ( (Map) obj ).size(), 2 );		ScrollableResults sr = session.createQuery( "select new map(an.description, an.bodyWeight) from Animal an" ).scroll();		assertTrue( "Incorrect result size", sr.next() );		obj = sr.get(0);		assertTrue( "Incorrect return type", obj instanceof Map );		assertEquals( "Incorrect return type", ( (Map) obj ).size(), 2 );		sr.close();		sr = session.createQuery( "select new Animal(an.description, an.bodyWeight) from Animal an" ).scroll();		assertTrue( "Incorrect result size", sr.next() );		assertTrue( "Incorrect return type", sr.get(0) instanceof Animal );		sr.close();		// caching...		QueryStatistics stats = getSessions().getStatistics().getQueryStatistics( "select new Animal(an.description, an.bodyWeight) from Animal an" );		results = session.createQuery( "select new Animal(an.description, an.bodyWeight) from Animal an" )				.setCacheable( true )				.list();		assertEquals( "incorrect result size", 2, results.size() );		assertClassAssignability( Animal.class, results.get( 0 ).getClass() );		long initCacheHits = stats.getCacheHitCount();		results = session.createQuery( "select new Animal(an.description, an.bodyWeight) from Animal an" )				.setCacheable( true )				.list();		assertEquals( "dynamic intantiation query not served from cache", initCacheHits + 1, stats.getCacheHitCount() );		assertEquals( "incorrect result size", 2, results.size() );		assertClassAssignability( Animal.class, results.get( 0 ).getClass() );		session.close();		destroyTestBaseData();	}	public void testIllegalMixedTransformerQueries() {		Session session = openSession();		try {			getSelectNewQuery( session ).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();			fail("'select new' together with a resulttransformer should result in error!");		} catch(QueryException he) {			assertTrue(he.getMessage().indexOf("ResultTransformer")==0);		}		try {			getSelectNewQuery( session ).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).iterate();			fail("'select new' together with a resulttransformer should result in error!");		} catch(HibernateException he) {			assertTrue(he.getMessage().indexOf("ResultTransformer")==0);		}		try {			getSelectNewQuery( session ).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).scroll();			fail("'select new' together with a resulttransformer should result in error!");		} catch(HibernateException he) {			assertTrue(he.getMessage().indexOf("ResultTransformer")==0);		}		session.close();	}	private Query getSelectNewQuery(Session session) {		return session.createQuery( "select new Animal(an.description, an.bodyWeight) from Animal an" );	}	public void testResultTransformerScalarQueries() throws Exception {		createTestBaseData();		String query = "select an.description as description, an.bodyWeight as bodyWeight from Animal an order by bodyWeight desc";		Session session = openSession();		List results = session.createQuery( query )		.setResultTransformer(Transformers.aliasToBean(Animal.class)).list();		assertEquals( "Incorrect result size", results.size(), 2 );		assertTrue( "Incorrect return type", results.get(0) instanceof Animal );		Animal firstAnimal = (Animal) results.get(0);		Animal secondAnimal = (Animal) results.get(1);		assertEquals("Mammal #1", firstAnimal.getDescription());		assertEquals("Mammal #2", secondAnimal.getDescription());		assertFalse(session.contains(firstAnimal));		session.close();		session = openSession();		Iterator iter = session.createQuery( query )	     .setResultTransformer(Transformers.aliasToBean(Animal.class)).iterate();		assertTrue( "Incorrect result size", iter.hasNext() );		assertTrue( "Incorrect return type", iter.next() instanceof Animal );		session.close();		session = openSession();		ScrollableResults sr = session.createQuery( query )	     .setResultTransformer(Transformers.aliasToBean(Animal.class)).scroll();		assertTrue( "Incorrect result size", sr.next() );		assertTrue( "Incorrect return type", sr.get(0) instanceof Animal );		assertFalse(session.contains(sr.get(0)));		sr.close();		session.close();		session = openSession();		results = session.createQuery( "select a from Animal a, Animal b order by a.id" )				.setResultTransformer( DistinctRootEntityResultTransformer.INSTANCE )				.list();		assertEquals( "Incorrect result size", 2, results.size());		assertTrue( "Incorrect return type", results.get(0) instanceof Animal );		firstAnimal = (Animal) results.get(0);		secondAnimal = (Animal) results.get(1);		assertEquals("Mammal #1", firstAnimal.getDescription());		assertEquals("Mammal #2", secondAnimal.getDescription());		session.close();		destroyTestBaseData();	}	public void testResultTransformerEntityQueries() throws Exception {		createTestBaseData();		String query = "select an as an from Animal an order by bodyWeight desc";		Session session = openSession();		List results = session.createQuery( query )		.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();		assertEquals( "Incorrect result size", results.size(), 2 );		assertTrue( "Incorrect return type", results.get(0) instanceof Map );		Map map = ((Map) results.get(0));		assertEquals(1, map.size());		Animal firstAnimal = (Animal) map.get("an");		map = ((Map) results.get(1));		Animal secondAnimal = (Animal) map.get("an");		assertEquals("Mammal #1", firstAnimal

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -