public Page<OrderInfo> searchOrderDetail(final OrderInfo orderInfo, final Date start, final Date end, final int page, final int size) {
return orderInfoRepository.findAll(new Specification<OrderInfo>() {
public Predicate toPredicate(Root<OrderInfo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> predicates = new ArrayList<Predicate>();
if (null != orderInfo) {
try {
// /**
// * 去掉售卡訂單數(shù)據(jù)
// */
// predicates.add(cb.notEqual(root.<String>get("orderType"), "TYP_CARD"));
if (!StringUtils.isEmpty(orderInfo.getOrderDetail().getProductName())) {// 這里也可以root.get("name").as(String.class)這種方式來強轉(zhuǎn)泛型類型
predicates.add(cb.like(root.<OrderDetail>get("orderDetail").get("productName"), "%" + orderInfo.getOrderDetail().getProductName() + "%"));
}
if (!StringUtils.isEmpty(orderInfo.getOrderDetail().getShopInfo().getShopName())) {// 這里也可以root.get("name").as(String.class)這種方式來強轉(zhuǎn)泛型類型
predicates.add(cb.like(root.<OrderDetail>get("orderDetail").<ShopInfo>get("shopInfo").get("shopName")
, "%" + orderInfo.getOrderDetail().getShopInfo().getShopName() + "%"));
}
if (!StringUtils.isEmpty(orderInfo.getOrderUid())) {
predicates.add(cb.like(root.get("orderUid"), "%" + orderInfo.getOrderUid() + "%"));
}
if (!StringUtils.isEmpty(orderInfo.getOrderState())) {
predicates.add(cb.equal(root.<String>get("orderState"), orderInfo.getOrderState()));
}
predicates.add(cb.equal(root.get("mallUid"), orderInfo.getMallUid()));
predicates.add(cb.equal(root.get("promotionUid"), orderInfo.getPromotionUid()));
//TODO 是否有用?待刪除
if (!StringUtils.isEmpty(orderInfo.getOrderDetail().getSubPromotionUid())) {
predicates.add(cb.equal(root.<OrderDetail>get("orderDetail").get("subPromotionUid"), orderInfo.getOrderDetail().getSubPromotionUid()));
}
} catch (Exception e) {
logger.error("error in searchOrderDetail, 動態(tài)sql查詢錯誤", e);
}
}
predicates.add(cb.between(root.get("orderAt"), start, end));
Predicate[] p = new Predicate[predicates.size()];
query.where(cb.and(predicates.toArray(p)));
return null;
}
}, new PageRequest(page, size));
}
JPA 動態(tài)sql方法 奇慢無比 僅參考
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 喂了狗的青春,愿轉(zhuǎn)幾道彎,翻越幾座山,兜兜轉(zhuǎn)轉(zhuǎn)還是你 很難過吧,那個有著幾百頁聊天記錄的人沒有了 你有沒有一個一直...
- xCode9 運行 iOS 模擬器奇慢無比的官方解釋和臨時解決辦法: Update: This bug is fi...