Java 为循环保存内部操作

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);

我在spring mvc+hibernate中工作

我在for循环内部执行create操作,但它只执行一次。这是我的示例代码

        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()”;
}