spring jpa 做统计查询的问题

看文档jpa有接口(CriteriaQuery)支持sum,count,max等统计函数的,见如下代码:

  //        Specification<AvgRateInveReport> spec=new Specification<AvgRateInveReport>(){
        //
        //            @Override
        //            public Predicate toPredicate(Root<AvgRateInveReport> arg0, CriteriaQuery<?> arg1, CriteriaBuilder arg2)
        //            {
        //                Predicate pc = null;
        //               
        //                arg1.multiselect(arg2.sum(arg0.<Double>get("apply_num")),arg2.count(arg0.get("apply_num")),arg0.get("orgType").get("code_value"));
        //                //arg1.where(arg0)
        //                arg1.groupBy(arg0.get("orgType").get("code_value"));
        //               
        //                pc=arg1.getGroupRestriction();
        //               
        //                return pc;
        //               
        //            }};
        //           
        //            List<AvgRateInveReport> list=avgRateInveReportService.findAll(spec);

这段代码看起来显然是有问题的,返回的结果封装应该就不对,JPA使用的时间不是很长,果然还不熟悉.最后放弃。改用EntityManager提供的createQuery等接口直接写jpql来实现,虽然这样功能照样能实现,但与其他风格格格不入(代码里全是sql还要对where条件的判断)。      有没有熟手能指导下,谢谢! 

 

你可能感兴趣的:(spring)