4000 Hibernate-分组查询、聚合函数
2016-06-04 21:12
323 查看
dao
biz
test
/* * 两列以上就封装成Object数组,一列就List 不能追加投影。不然会覆盖掉。最后一次有效 */ public List testProjection() { // select avg(sal),max(sal),count(empno) from Emp group by dept return HibernateSessionFactory.getSession() .createCriteria(Dept.class) // .setProjection(Property.forName("dname")) .setProjection( Projections .projectionList() // .add(Property.forName("dept").group())//封装的Dept对象,里面有延迟加载,因为Dept封装了Deptno // .add(Property.forName("dept.deptno").group()) .add(Projections.groupProperty("dept.deptno")) .add(Projections.avg("sal"))// 同下 .add(Projections.rowCount())//count(*) // .add(Property.forName("sal").avg()) // .add(Property.forName("sal").max()) // .add(Property.forName("sal").min()) // .add(Property.forName("sal").count()) ).list(); }
biz
public List testProjection() { return dao.testProjection(); }
test
public static void main(String[] args) { Transaction tx = null; try { tx = HibernateSessionFactory.getSession().beginTransaction(); DeptBiz biz = new DeptBiz(); List result = biz.testProjection(); for (Object o : result) { Object[] row=(Object[])o; //System.out.println(row[0]==null?"unknown":((Dept)row[0]).getDname()+"\t"+row[1]+"\t"+row[4]); System.out.println(row[0]+"\t"+row[1]+"\t"+row[4]); } tx.commit(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (tx != null) { tx.rollback(); } }
相关文章推荐
- 基于深度学习的目标检测研究进展
- 《机电传动控制》——直流电机调速仿真作业
- 个人最终总结(1)
- 《梦断代码》阅读笔记02
- ArcMap通过ArcSDE连接oracle
- FlowingDrawer 一个bug的解决
- 怎么快速学习App后台开发
- SSE2 SSE简介和C代码示例
- C# 实现IAccessible学习(一)
- uva 1312 Cricket Field
- Oracle SQL性能优化
- Java趣味编程(一)
- Linux进程管理---task_struct
- 编译64位haoop2.5.2
- JAVA-WEB开发第三讲[2016-06-04]JAVA环境变量的设置
- 对学术诚信与职业道德的感悟
- matlab图像处理函数
- 关于shiro+springMVC整合使用的问题
- 微信公众平台开发(76) 获取用户基本信息
- C++实验7--最大公约数和最小公倍数