我無法理解為什么不能在控制器中使用 save 方法。我使用的是 Spring Boot 2.2.6 版。使用此方法時,它顯示此錯誤“型別 CrudRepository<TourClaimModel,Integer> 中的方法 save(S) 不適用于引數(串列)”
這是我的代碼,
@RequestMapping(method = RequestMethod.POST, value = "/tourClaim")
public String tourClaimApprovedByYuv(@RequestBody ArrayList<Integer> claimidList, Principal p) {
String result = "";
List<TourClaimModel> tour = tourClaimRepository.findByIdIn(claimidList);
tourClaimRepository.save(tour);
result = "Success";
return result;
}
我該如何解決這個問題?
uj5u.com熱心網友回復:
CrudRepository#save用于持久化一個物體。
如果你想保存很多,你需要使用saveAll
@RequestMapping(method = RequestMethod.POST, value = "/tourClaim")
public String tourClaimApprovedByYuv(@RequestBody ArrayList<Integer> claimidList, Principal p) {
String result = "";
List<TourClaimModel> tour = tourClaimRepository.findByIdIn(claimidList);
tourClaimRepository.saveAll(tour);
result = "Success";
return result;
}
uj5u.com熱心網友回復:
只需遍歷串列TourClaimModel并保存每個串列:
@RequestMapping(method = RequestMethod.POST, value = "/tourClaim")
public String tourClaimApprovedByYuv(@RequestBody ArrayList<Integer> claimidList, Principal p) {
String result = "";
List<TourClaimModel> tours = tourClaimRepository.findByIdIn(claimidList);
for (TourClaimModel tour : tours) {
tourClaimRepository.save(tour);
}
result = "Success";
return result;
}
但是,我不明白您要實作的目標,因為您正在保存剛剛從資料庫中檢索到的物件而沒有進行任何更改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/370026.html
