jQuery条件分页 代替离线查询(附代码)
importjavax.persistence.criteria.CriteriaBuilder;
importjavax.persistence.criteria.CriteriaQuery;
importjavax.persistence.criteria.Join;
importjavax.persistence.criteria.Predicate;
importjavax.persistence.criteria.Root;
importnet.sf.json.JSONObject;
importnet.sf.json.JsonConfig;
@Action("courierAction_pageQuery")
publicStringpageQuery()throwsException{
Pageablepageable=newPageRequest(page-1,rows);
finalStringcourierNum=model.getCourierNum();
finalStringcompany=model.getCompany();
finalStringtype=model.getType();
finalStandardstandard=model.getStandard();
//相当于DetchedCriteria对象.通过specification封装过滤条件
Specificationspecification=newSpecification(){
@Override
publicPredicatetoPredicate(Rootroot,CriteriaQuery>query,CriteriaBuildercb){
//root:根实体query:排序,封装条件CriteriaBuilder:Predicate断言工厂,产生Predicate对象
//添加过滤条件:添加快递员编号条件
//p1:实体中属性p2:条件
Listlist=newArrayList<>();
if(StringUtils.isNotBlank(courierNum)){
Predicatep1=cb.equal(root.get("courierNum").as(String.class),courierNum);
list.add(p1);
}
if(StringUtils.isNotBlank(company)){
Predicatep2=cb.equal(root.get("company").as(String.class),company);
list.add(p2);
}
if(StringUtils.isNotBlank(type)){
Predicatep3=cb.equal(root.get("type").as(String.class),type);
list.add(p3);
}
//sql:select*fromT_COURIERtinnerjoint_Standardsont.c_standard_id=s.c_id
//wheres.c_name='标准一(100公斤)';
//JPQL:fromCouriercinnerjoinc.standardswheres.name="";
if(standard!=null&&StringUtils.isNotBlank(standard.getName())){
//返回关联对象
Join
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对毛票票的支持!