try (entitymanagercontainer emc = entitymanagercontainerfactory.instance().create()) { actionresultresult = new actionresult<>(); wi wi = this.converttowrapin(jsonelement, wi.class); list ids = new arraylist<>(); entitymanager em = emc.get(recordreadlog.class); criteriabuilder cb = em.getcriteriabuilder(); criteriaquery cq = cb.createquery(string.class); root root = cq.from(recordreadlog.class); predicate p = cb.equal(root.get(recordreadlog_.idrecord),wi.getidrecord().trim()); if(wi.getstarttime() != null) { p = cb.and(p, cb.greaterthanorequalto(root.get(recordreadlog_.createtime), wi.getstarttime())); } if(wi.getendtime()!= null) { p = cb.and(p, cb.lessthanorequalto(root.get(recordreadlog_.createtime), wi.getendtime())); } order order; string sortfield = wi.getsortfield(); string sorttype = wi.getsorttype(); if(!stringutils.isblank(sortfield)) { if(sorttype.equalsignorecase("asc")) { order = cb.asc(root.get(sortfield)); }else { order = cb.desc(root.get(sortfield)); } }else { order = cb.desc(root.get("createtime")); } cq.select(root.get(recordreadlog_.id)).where(p).orderby(order); typedquery
typedquery = em.createquery(cq); int pageindex = (page-1)*size; int pagesize = size; typedquery.setfirstresult(pageindex); typedquery.setmaxresults(pagesize); ids = typedquery.getresultlist(); typedquery tqcount = em.createquery( cq.select(root.get(recordreadlog_.id)).where(p)); list allid = tqcount.getresultlist(); long tpsize = (long) allid.size(); criteriaquery cqrecord = cb.createquery(recordreadlog.class); predicate precord = cb.ismember(root.get(recordreadlog_.id), cb.literal(ids)); root rootrecord = cqrecord.from(recordreadlog.class); cqrecord.select(rootrecord).where(precord).orderby(order); list os = em.createquery(cqrecord).getresultlist(); list wos = wo.copier.copy(os); result.setdata(wos); result.setcount(tpsize); return result; }
anonymous:匿名访问权限
cipher:这个应该是服务器之间访问权限
manager:管理员访问权限
user:普通用户放权权限
wi:接收接口输入参数对象
wo:接口返回参数对象
参考: