當(dāng)通過jpa通過id查詢時,使用 findById(id).get(),當(dāng)id不存在當(dāng),也就是數(shù)據(jù)庫沒有對應(yīng)當(dāng)id數(shù)據(jù)時,就回報上面當(dāng)異常

后來查看源碼,發(fā)現(xiàn):

public T get() {
     if (value == null) {
           throw new NoSuchElementException("No value present");
     }
     return value;
 }
也就是說當(dāng)查不到值的時候,jpa統(tǒng)一處理為拋異常,所以每次取之前都要判斷有沒有數(shù)據(jù),后來發(fā)現(xiàn)了這個

public boolean isPresent() {
        return value != null;
 }
于是代碼就這樣寫

Optional<T> optionalT = orderDetailRepository.findById(id);
return optionalT.isPresent() ? optionalT.get(): null;
截圖