2015-03-31 43 views
0

我正在春天mvc +休眠.....保存内部运行循环

我正在为循环创建操作,但它只执行一次。这里是我的示例代码。

 String[] loanIds = request.getParameterValues("loanId"); 

loanIds值为5

 for (String string : loanIds) {     
      loanFinance.setFundingBankId(bankId); 
      loanFinance.setIdFundsProductPurpose(Long.valueOf(68449)); 
      loanFinance.setLoanId(Long.parseLong(string)); 
      loanFinance.setLastModifiedBy(user.getId()); 
      loanFinance.setIdEntityloan(Long.parseLong(string)); 
      loanFinance.setAmount(10000.00); 
      loanFinance.setStatus("A"); 

      commonRepository.save(loanFinance);  
      System.out.println("Saved Datas"); 
     } 

我catalina.out中我可以看到 “保存的数据单项” 印刷5次....但表插入只有一次。

谁能给我建议在此,我在做什么错在这里..

回答

2

您一遍又一遍地保存同一个对象。如果你想插入5个不同的元素,你需要在每次迭代中创建一个新的元素。

for (String string : loanIds) { 
     loanFinance = new LoanFinance();    
     loanFinance.setFundingBankId(bankId); 
     loanFinance.setIdFundsProductPurpose(Long.valueOf(68449)); 
     loanFinance.setLoanId(Long.parseLong(string)); 
     loanFinance.setLastModifiedBy(user.getId()); 
     loanFinance.setIdEntityloan(Long.parseLong(string)); 
     loanFinance.setAmount(10000.00); 
     loanFinance.setStatus("A"); 

     commonRepository.save(loanFinance);  
     System.out.println("Saved Datas"); 
    } 
+0

谢谢,它为我工作。 – 2017-07-22 07:32:04

3

我相信你必须创建为每个遍历字符串的新LoanFinance对象。

+0

我已经做了! ecStgSlobEvents = new EcStgSlobEvents(); – 2017-07-24 07:26:33

-1

Extention答案GIOVANNI

@PostMapping( “multiplevents”) 公共无效createStgSlobMultiEvents(@RequestBody EcStgSlobEvents createEcStgSlobEvents ){

logger.info(" createEcStgSlobEvents ---> " + createEcStgSlobEvents); 

    logger.info(" EcStgSlobEventController::: createStgSlobMultiEvents() "); 

    List<Integer> eventids = createEcStgSlobEvents.getEvenIds(); 
    EcStgSlobEvents ecStgSlobEvents =null; 
    for (Integer eventId : eventids) { 
     ecStgSlobEvents = new EcStgSlobEvents(); 

     ecStgSlobEvents.setCliCode(createEcStgSlobEvents.getCliCode()); 
     ecStgSlobEvents.setEventId(eventId); 
     ecStgSlobEvents.setLineOfBusiness(createEcStgSlobEvents.getLineOfBusiness()); 
     ecStgSlobEvents.setSlobEventId(createEcStgSlobEvents.getSlobEventId()); 
     ecStgSlobEvents.setSublineOfBusiness(createEcStgSlobEvents.getSublineOfBusiness()); 

     createEcStgSlobEvents.setEventId(eventId); 
     logger.info(" EcStgSlobEventController::: EventId " + eventId); 
     eventConfigurerepo.save(ecStgSlobEvents); 
    } 
    logger.info(" EcStgSlobEventController::: createStgSlobEvents - multiplevents() "); 

}