jpa Page 1 of 0 containing UNKNOWN instancesエラー

2564 ワード

作者:LoveEmperor-王子様
一、問題:Page 1 of 0 containing UNKNOWN instancesこの問題は一般的にあなたが複数の条件クエリーをしている間に、条件が追加されましたが、空の条件です.例:
      List predicates = new ArrayList<>();
                if(!vo.getPhone().equals("0")){
                    predicates.add(cb.equal(root.get("phone"), vo.getPhone()));
                }
                if(0 != vo.getTitleType()){
                    predicates.add(cb.equal(root.get("titleType"), vo.getTitleType()));
                }
                if(!vo.getInvoiceTitle().equals("0")){
                    predicates.add(cb.equal(root.get("invoiceTitle"), vo.getInvoiceTitle()));
                }

例えば3つ目の条件は条件付きで追加されますがvo.getInvoiceTitle()が空の値であると、エラーが発生します.
二、問題:Page 1 of 1 containing UNKNOWN instancesこの問題は一般的にあなたがページングクエリーで、pageは1(pageのデフォルトは0から)ですが、1ページ(つまり2ページ目がありません)はありません.だからpageは0から値をつけるべきです.例:
Pageable pageable = new PageRequest(vo.getPageNumber()-1, vo.getPageSize(), Sort.Direction.ASC, "id");

Page page = this.invoiceInfoRepository.findAll(getCondition(vo), pageable);