91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery條件分頁代替離線查詢的示例分析

發布時間:2021-07-22 11:38:23 來源:億速云 閱讀:104 作者:小新 欄目:web開發

這篇文章主要介紹jQuery條件分頁代替離線查詢的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

 @Action("courierAction_pageQuery")
 public String pageQuery() throws Exception {
  Pageable pageable = new PageRequest(page-1, rows);
  final String courierNum = model.getCourierNum();
  final String company = model.getCompany();
  final String type = model.getType();
  final Standard standard = model.getStandard();
  
  //相當于DetchedCriteria對象.通過specification封裝過濾條件
  Specification<Courier> specification = new Specification<Courier>() {
   
   @Override
   public Predicate toPredicate(Root<Courier> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
    //root:根實體 query:排序,封裝條件 CriteriaBuilder:Predicate斷言工廠,產生Predicate對象
    //添加過濾條件:添加快遞員編號條件
    //p1:實體中屬性 p2:條件
    List<Predicate> list = new ArrayList<>();
    if(StringUtils.isNotBlank(courierNum)){
     Predicate p1 = cb.equal(root.get("courierNum").as(String.class), courierNum);
     list.add(p1);
    }
    if(StringUtils.isNotBlank(company)){
     Predicate p2 = cb.equal(root.get("company").as(String.class), company);
     list.add(p2);
    }
    if(StringUtils.isNotBlank(type)){
     Predicate p3 = cb.equal(root.get("type").as(String.class), type);
     list.add(p3);
    }
    //sql : select * from T_COURIER t inner join t_Standard s on t.c_standard_id = s.c_id
//    where s.c_name = '標準一(100公斤)';
    //JPQL: from Courier c inner join c.standard s where s.name = "";
    if(standard!=null && StringUtils.isNotBlank(standard.getName())){
     //返回關聯對象
     Join<Object, Object> join = root.join("standard");
     Predicate p4 = cb.equal(join.get("name").as(String.class), standard.getName());
     list.add(p4);
    }
    if(list.size()==0){
     return null;
    }
    //list集合轉為數組
    Predicate[] restrictions = new Predicate[list.size()];
    restrictions = list.toArray(restrictions);
    return cb.and(restrictions);
   }
  };
  Page<Courier> page = courierService.findAll(specification, pageable);
  
  Map<String, Object> map = new HashMap<>();
  map.put("total", page.getTotalElements());
  map.put("rows", page.getContent());
  
  //將fixedares集合屬性排除掉,不轉json
  JsonConfig jsonConfig = new JsonConfig();
  jsonConfig.setExcludes(new String[]{"fixedAreas"});
  
  String json = JSONObject.fromObject(map, jsonConfig).toString();
  
  ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
  ServletActionContext.getResponse().getWriter().write(json);
  return NONE;
 }
Dao:
public interface CourierDao extends JpaRepository<Courier, Integer>, JpaSpecificationExecutor<Courier> {

}

以上是“jQuery條件分頁代替離線查詢的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

jq
AI

锡林浩特市| 浦江县| 深泽县| 色达县| 德格县| 连州市| 宜黄县| 舟曲县| 池州市| 都江堰市| 靖远县| 庐江县| 平凉市| 南康市| 台山市| 双江| 齐齐哈尔市| 柘荣县| 屏山县| 嘉峪关市| 宁安市| 鹰潭市| 拜泉县| 正安县| 梓潼县| 高陵县| 榕江县| 屯昌县| 延安市| 荆州市| 本溪| 乡城县| 望奎县| 申扎县| 定安县| 当涂县| 玉门市| 洮南市| 平泉县| 道孚县| 江城|