hiernate统计

第一种方法,直接遍历iterator

final String sql="select sum(a.depreciateValue) ,sum(a.originalValue), a.department.id from Assets a group by department.id";
		Iterator iterator=assetsDao.createQuery(sql, new Object[]{}).iterate();
		while(iterator.hasNext()){
			Object[] rows = (Object[]) iterator.next();   
			System.out.println("累计折旧值: " + rows[0] + "\n原始值: " + rows[1]);  

		}

 第二种方法和第一种方法类似,只是遍历list

final String sql="select sum(a.depreciateValue) ,sum(a.originalValue), a.department.id from Assets a group by department.id";
		List<Object[]> list=assetsDao.createQuery(sql, new Object[]{}).list();
		for(Object[] rows:list){
			System.out.println("累计折旧值: " + rows[0] + "\n原始值: " + rows[1]);  
		}

 第三种方法是使用hibernate调用createSqlQuery(),这个方法注意的地方比较多.

1query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); 

2query.setResultTransformer(Transformers.aliasToBean(AssetsStatisticsData.class));

等等
  比较烦琐,不如前面两种查出数据手动封装

你可能感兴趣的:(sql,Hibernate)