當通過jpa通過id查詢時,使用 findById(id).get(),當id不存在當,也就是數(shù)據(jù)庫沒有對應當id數(shù)據(jù)時,就回報上面當異常
后來查看源碼,發(fā)現(xiàn):
public T get() { if (value == null) { throw new NoSuchElementException("No value present"); } return value; }也就是說當查不到值的時候,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;
![截圖](http://images.xjyili.cn/uploads/article/cache/20200327/1585300327.png)