如何设置多个条件,例如SUM,MAX,AVG并将其打印在休眠模板中

时间:2018-11-15 07:23:19

标签: java hibernate hibernate-criteria hibernate-restrictions

您好,我正在尝试获取“ productCount”的最大值,平均值和。我写这段代码。我找不到解决该问题的方法。

数据库查询^[\\p{L}0-9-_&$.,'\x60()!/ ]*$

Java代码

select sum(product.PRODUCT_COUNT), avg(product.PRODUCT_COUNT), max(product.PRODUCT_COUNT) from product where product.PRODUCT_COUNT>5;

休眠映射

    HibernateTemplate template = getHibernateTemplate();
    DetachedCriteria criteria = DetachedCriteria.forClass(Product.class);
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.max("productCount"));
    projectionList.add(Projections.avg("productCount"));
    projectionList.add(Projections.avg("productCount"));

    criteria.add(Restrictions.gt("productCount", 4));
    criteria.setProjection(projectionList);

    List<?> list = template.findByCriteria(criteria);
    System.out.println(list.get(0));
    System.out.println(list.get(1));
    System.out.println(list.get(2));

但是我没有得到想要的结果。请帮助我。

1 个答案:

答案 0 :(得分:0)

我认为根据您的Db查询,您错过了一些东西,正如我在评论中已经提到的那样。而不是使用2次平均值替换为sum并将更大的条件从4更改为5。 我在下面提到了供您参考

adb devices
List of devices attached 
44b194f5    device