這是我的示例代碼,我試圖在其中通過可分頁界面獲取查找最新產品,
try{
Repo product = repo.findByIdDateAndValueExists(data.getId, data.getDate, request).getContent().get(0);
}catch(Exception e){
LOGGER.error("Failed :: something went wrong: {}", e.getMessage(), e);
}
這是我的存盤庫代碼
@Query(value = "{'ID': ?0, 'Date' : ?1 ,'value':{'$exists': true}}")
Page<Repo> findByIdDateAndValueExists(String Id ,String Date,Pageable pageable);
現在在某些情況下發生了什么我得到 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 并且它破壞了整個代碼流程,有人可以建議在這種情況下處理此類例外的正確方法嗎?幫助表示贊賞。
uj5u.com熱心網友回復:
您可以先檢查結果的大小,然后嘗試檢索元素。就像是
List<Repo> resutl = addressRepository.findByIdDateAndValueExists().getContent();
if (!result.isEmpty() {
.....
uj5u.com熱心網友回復:
在 JPA 查詢索引以 1 開頭,因此請將此語法用于您的自定義查詢
@Query(value = "{'ID': ?1, 'Date' : ?2 ,'value':{'$exists': true}}") 頁面 findByIdDateAndValueExists(String Id ,String Date,Pageable pageable);
uj5u.com熱心網友回復:
在處理你得到的任何結果之前,首先你需要檢查它是否回傳任何資料。
根據您的代碼findByIdDateAndValueExists()方法addressRepository將回傳物體頁面,即,
Page<Repo> page = repo.findByIdDateAndValueExists(data.getId, data.getDate, request);
// it will give how many pages it has return
int totalPages = page.getTotalPages();
if(totalPages>=1){
List<Repo> products = page.getContent();
.
.
.
.
}else{
// do nothing
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/336585.html
下一篇:從事務回滾中排除私有方法執行
