Reputation: 1078
I am working in spring mvc + hibernate.....
I am making create operation inside for loop, but its executed only once. here is my sample code.
String[] loanIds = request.getParameterValues("loanId");
loanIds value is 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");
}
I catalina.out I can see "Saved Datas" prints 5 times.... but table inserted only once.
Can anyone give me advice in this, what I am doing wrong here..
Upvotes: 0
Views: 3332
Reputation: 139
for (String string : loanIds) {
loanFinance = new LoanFinance(); // This should be in the loop too.
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");
}
Upvotes: 1
Reputation: 374
Extention answer for GIOVANNI
@PostMapping("multiplevents") public void 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() ");
}
Upvotes: -1
Reputation: 543
You are saving the same object over and over. If you want to insert 5 different element you need to create a new element at each iteration.
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");
}
Upvotes: 3
Reputation: 628
I believe you have to create a new LoanFinance object for each string you iterate through.
Upvotes: 3