JpaSpecificationExecutor的使用技巧


一、criteriaBuilder.in使用

需求:在原有的Jpa查詢上過濾訂單狀態。類似於Sql: where status in (1,2,3)

參考:https://stackoverflow.com/questions/9321916/jpa-criteriabuilder-how-to-use-in-comparison-operator

方法一:

Path<Object> path = root.get("status");
CriteriaBuilder.In<Object> in = criteriaBuilder.in(path);
in.value(OrderRefund.Status.pending);
in.value(OrderRefund.Status.approved);
in.value(OrderRefund.Status.received);
in.value(OrderRefund.Status.receiveing);
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.and(in));

方法二:

Path<Object> path = root.get("hospId");
CriteriaBuilder.In<Object> in = criteriaBuilder.in(path);
    for (BigInteger hospId:hospIds){
    in.value(hospId);
}
predicates.add(criteriaBuilder.and(in));

方法二更值得推薦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM