如何在发生异常时继续批量插入

nag*_*nag 5 java hibernate jpa exception try-catch

我正在使用jpa与hibernate我想在数据库中插入100条记录,假设我在第50条记录插入中得到异常JDBC批量更新我需要处理异常,我需要将剩余记录保存到DB.

码:

 private List<TempCustomers> tempCustomer =new ArrayList<TempCustomers>();

    public String migrateCustomers() {

      TempCustomers temp = null;
        for(DoTempCustomers tempCustomers:doTempCustomers){

              try {
                temp=new TempCustomers();
                BeanUtils.copyProperties(temp, tempCustomers);
                        tempCustomer.add(temp);
                    entityManager.persist(temp);


              }catch (Exception e) {
                  tempCustomer.add(temp);
                  entityManager.persist(temp);
                  log.info("Exception ..."+e);
                  return "null";
              }
        }


        return "null";
    }
Run Code Online (Sandbox Code Playgroud)

小智 0

纳根德拉。

RAS先生所说的是正确的。

例如,您正在持久化 100 个实体,而第 50 个实体持久化时发生异常。您有异常处理程序,它将帮助您处理这种情况。它将跳过当前一个并处理下一个。

需要注意的事项如下:

1-你的异常处理应该在循环内,希望你已经有了它。

2- 对于异常,您可以将实体保存在不同的列表中,以便进一步分析错误详细信息。在异常 catch 块中执行此操作。

3-我不确定您是否使用事务管理器,事务需要小心。

--