• Hibernate Criteria接口 setProjection方法:设置查询的投影列

    setProjection 方法用于设置查询的投影列。该方法与 Projections 类结合不仅可以实现简单的投影查询,而且可以实现数据的分组统计。

    语法:

    setProjection(Projection projection)

    参数说明:

    • projection:用于指定投影列或分组统计条件。

    返回值:Criteria 对象。

    示例1

    应用投影查询,查询数据表中的全部用户 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());
    }

    示例2

    应用投影查询,查询数据表中的全部用户 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]);
    }

    示例3

    获取订单信息表中的合计金额,关键代码如下:

    Criteria criteria = session.createCriteria(OrderForm.class);  //获取Criteria示例
    criteria.setProjection(Projections.sum("money"));  //设置查询列
    double sumMoney = (Double)criteria.uniqueResult();  //获取订单信息表总金额
    System.out.println("合计金额:"+sumMoney);

更多...

加载中...