//测试投影查询 
	//一.单列投影
	@Test
	public void testTouYinOfOne(){
	//采用自定义工具类 HibernateUtil中的getSession()方法建立会话
		Session session = HibernateUtil.getSession();
		//创建hql语句(语句中的属性 和类 都是 java实体类中的 属性名和类名--不是数据库中的字段名和表名)
		String hql = "select ename from Emp";
		Query query = session.createQuery(hql);
		//name属性的 类型为String
		List<String> elist = query.list();
		for (String name : elist) {
			System.out.println(name);
		}
		// 关闭会话
		HibernateUtil.closeSession();
	}

	//二.多列投影(非所有字段)
	@Test
	public void testTouYingOfMany(){
		Session session = HibernateUtil.getSession();
		String hql = "select ename ,sal from Emp";
		/*ename类型为String,sal类型为double,因此使用Object
		使用数组接收数据库中两个字段所有值*/
		List<Object[]>olist = session.createQuery(hql).list();
		for (Object[] arr : olist) {
		//输出数组元素
			System.out.println(arr[0]+"\t"+arr[1]);
		}
		//关闭会话
		HibernateUtil.closeSession();
	}

图解:
Hibernate框架中的HQL之查询部分字段

相关文章: