setProjection 方法用于设置查询的投影列。该方法与 Projections 类结合不仅可以实现简单的投影查询,而且可以实现数据的分组统计。
语法:
参数说明:
返回值:Criteria 对象。
应用投影查询,查询数据表中的全部用户 ID,关键代码如下:
- Criteria criteria = session.createCriteria(UserForm.class); //示例化Criteria对象
- criteria.setProjection(Projections.id()); //设置查询列
- list = criteria.list(); //执行查询
- Iterator it = list.iterator(); //获取查询结果迭代器
- while(it.hasNext()){ //循环遍历查询结果
- System.out.println(it.next());
- }
应用投影查询,查询数据表中的全部用户 ID 和用户名,关键代码如下:
- Criteria criteria = session.createCriteria(UserForm.class); //示例化Criteria对象
- criteria.setProjection(Projections.projectionList()
- .add(Projections.id())
- .add(Projections.property("username")) //查询数据表全部用户ID和用户名
- );
- List list = criteria.list(); //获取查询结果
- Iterator it = list.iterator(); //获取查询结果迭代器
- while(it.hasNext()){ //循环遍历迭代器
- Object[] o = (Object[])it.next();
- System.out.println("ID:"+o[0]+"用户名:"+o[1]);
- }
获取订单信息表中的合计金额,关键代码如下:
- Criteria criteria = session.createCriteria(OrderForm.class); //获取Criteria示例
- criteria.setProjection(Projections.sum("money")); //设置查询列
- double sumMoney = (Double)criteria.uniqueResult(); //获取订单信息表总金额
- System.out.println("合计金额:"+sumMoney);