Java 为循环保存内部操作
我在spring mvc+hibernate中工作 我在for循环内部执行create操作,但它只执行一次。这是我的示例代码Java 为循环保存内部操作,java,spring,hibernate,for-loop,Java,Spring,Hibernate,For Loop,我在spring mvc+hibernate中工作 我在for循环内部执行create操作,但它只执行一次。这是我的示例代码 String[] loanIds = request.getParameterValues("loanId"); loanIds值为5 for (String string : loanIds) { loanFinance.setFundingBankId(bankId);
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");
}
我可以看到“保存的数据”打印5次。。。。但表只插入了一次
有谁能给我一些建议,我在这里做错了什么。我相信你必须为你迭代的每个字符串创建一个新的贷款融资对象。我相信你必须为你迭代的每个字符串创建一个新的贷款融资对象。你正在反复保存同一个对象。如果要插入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");
}
您正在反复保存同一对象。如果要插入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");
}
乔瓦尼的引申回答 @后映射(“多事件”) 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() ");
}
logger.info(“createEcStgSlobEvents-->”+createEcStgSlobEvents);
info(“EcStgSlobEventController:::createStgSlobMultiEvents()”;
List eventids=createEcStgSlobEvents.getEvenIds();
EcStgSlobEvents EcStgSlobEvents=null;
for(整数eventId:eventId){
ecStgSlobEvents=新的ecStgSlobEvents();
setCliCode(createEcStgSlobEvents.getCliCode());
ecStgSlobEvents.setEventId(eventId);
setLineOfBusiness(createEcStgSlobEvents.getLineOfBusiness());
ecStgSlobEvents.setslobventid(createEcStgSlobEvents.getSlobEventId());
ecStgSlobEvents.setpublineofbusiness(createEcStgSlobEvents.getSublineOfBusiness());
createEcStgSlobEvents.setEventId(eventId);
logger.info(“EcStgSlobEventController:::EventId”+EventId);
事件配置repo.save(ecStgSlobEvents);
}
info(“EcStgSlobEventController:::createStgSlobEvents-multipleevents()”;
}
GIOVANNI的扩展答案
@后映射(“多事件”)
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() ");
}
logger.info(“createEcStgSlobEvents-->”+createEcStgSlobEvents);
info(“EcStgSlobEventController:::createStgSlobMultiEvents()”;
List eventids=createEcStgSlobEvents.getEvenIds();
EcStgSlobEvents EcStgSlobEvents=null;
for(整数eventId:eventId){
ecStgSlobEvents=新的ecStgSlobEvents();
setCliCode(createEcStgSlobEvents.getCliCode());
ecStgSlobEvents.setEventId(eventId);
setLineOfBusiness(createEcStgSlobEvents.getLineOfBusiness());
ecStgSlobEvents.setslobventid(createEcStgSlobEvents.getSlobEventId());
ecStgSlobEvents.setpublineofbusiness(createEcStgSlobEvents.getSublineOfBusiness());
createEcStgSlobEvents.setEventId(eventId);
logger.info(“EcStgSlobEventController:::EventId”+EventId);
事件配置repo.save(ecStgSlobEvents);
}
info(“EcStgSlobEventController:::createStgSlobEvents-multipleevents()”;
}