spring-data-jpa 複雜檢索實現
阿新 • • 發佈:2019-02-12
由於公司專案第一次接觸到 spring-data-jap 框架約定的實現方式
檢索實現方式
後來發現這種實現方式的問題 後端接到引數以後無法直接處理
後期提出兩種方案來實現修改資料
1,在過濾器中攔截 修改引數
2,用aop 實現修改
菁實驗兩種方式都無法實現修改,
由於我本人是個一年的小菜鳥 改問題需要時間比較久
後來檢視原始碼發現數據封裝 結構 經百度 找到一種解決方式 經實驗也可用而且靈活性及交高
這個也是spring -data -jpa 提供的方式
Page<CPregPrepoView> result = cPregPrepoViewService.findAllCPregPrepoView(new Specification<CPregPrepoView>() { @Override public Predicate toPredicate(Root<CPregPrepoView> root, CriteriaQuery<?> query, CriteriaBuilder cb) { List<Predicate> predicates = new ArrayList<Predicate>(); root = query.from(CPregPrepoView.class); //Path<String> nameExp = root.get("name"); List<String> arr = new ArrayList<String>(); arr.add("1230"); arr.add("789"); predicates.add(cb.like(root.<String>get("prjname"),"%江蘇%")); predicates.add(cb.like(root.<String>get("prjname"),"%無錫%")); predicates.add(root.<String>get("maruserid").in(arr)); return cb.and(predicates.toArray(new Predicate[predicates.size()])); } }, pageable);
到這裡問題解決了 這邊公司原來使用的是
我覺得也是蠻好用的 實現一些簡單的檢索 還是很不錯的 能節省很多程式碼