PublicPage<xmglfiletemplatedto> findxmglfiletemplatebyconditions (Xmglfiletemplatedto XMGLFileTemplateDTO, pageable pageable)throwsmyexception {Page<XMGLFileTemplate> xmglfiletemplatelists = This. Xmglfiletemplaterepository.findall (NewSpecification<xmglfiletemplate>() {@Override Publicpredicate topredicate (root<xmglfiletemplate> Root, criteriaquery<?>criteriaquery, Criteriabuilder criteriabuilder) {List<Predicate> predicatelist =NewArraylist<predicate>(); //Document name if(Stringutils.isnotblank (Xmglfiletemplatedto.getfilename ())) {Predicatelist.add (criteriabuilder.like (Root.get ("FileName"), "%" +xmglfiletemplatedto.getfilename () + "%")); } //Uploading Personnel if(Stringutils.isnotblank (Xmglfiletemplatedto.getuploadusername ())) {Predicatelist.add (CriteriaBuilde R.like (Root.get ("Rsglsysuser"). Get ("name"), "%" +xmglfiletemplatedto.getuploadusername () + "%")); } //Importance if(NULL!=Xmglfiletemplatedto.getimportantlevel ()) {Predicatelist.add (Criteriabuilder.equal (Root.get ("Importantlevel"), Xmglfiletemplatedto.getimportantlevel ()); } //Trading Hours if(NULL! = Xmglfiletemplatedto.getuploadbegintime () &&NULL!=Xmglfiletemplatedto.getuploadendtime ()) {Predicatelist.add (Criteriabuilder.and (Criteriabuilder.greaterthanorequalto (Root.get ("Uploadtime"), Dateutils.parsedatetime (Xmglfiletemplatedto.getuploadbegintime () + "00:00:00")), Criteriabuilder.lessthanorequalto (Root.get ("Uploadtime"), Dateutils.parsedatetime (Xmglfiletemplatedto.getuploadendtime () + "23:59:59")))); } Else if(NULL!=Xmglfiletemplatedto.getuploadbegintime ()) {Predicatelist.add (Criteriabuilder.greaterthanorequalto (Root.get ("Uploadtime"), Dateutils.parsedatetime (Xmglfiletemplatedto.getuploadbegintime () + "00:00:00"))); } Else if(NULL!=Xmglfiletemplatedto.getuploadendtime ()) {Predicatelist.add (Criteriabuilder.lessthanorequalto (Root.get ("Uploadtime"), Dateutils.parsedatetime (Xmglfiletemplatedto.getuploadendtime () + "23:59:59"))); } criteriaquery.where (Predicatelist.toarray (NewPredicate[0])); //update time in reverse orderCriteriaquery.orderby (Criteriabuilder.desc (Root.get ("Uploadtime"))); return NULL; }}, pageable); List<XMGLFileTemplateDTO> Xmglfiletemplatedtos =NewArraylist<xmglfiletemplatedto>(); for(Xmglfiletemplate xmglFileTemplate:XMGLFileTemplateLists.getContent ()) {//converts a paging object to a list object becauseXmglfiletemplatedto DTO =Newxmglfiletemplatedto (); Beanutils.copyproperties (Xmglfiletemplate, DTO);//matching copies of DTOs and Doman layers that accept foreground parametersDto.setuploadusername (Xmglfiletemplate.getrsglsysuser (). GetName ()); Xmglfiletemplatedtos.add (DTO);//Join List Collection } return NewCustompageimpl<xmglfiletemplatedto>(Xmglfiletemplatedtos, pageable,xmglfiletemplatelists.gettotalelements ()); }
Services layer, querying with object paging
Several usage records of SPRINGDATAJPA