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

标签 java hibernate exception jpa try-catch

我在 hibernate 中使用 jpa 我想在数据库中插入 100 条记录,假设我在第 50 条记录插入时遇到异常 JDBC 批量更新我需要处理异常并且我需要将剩余的记录保存到数据库。

代码:

 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";
    }

最佳答案

纳金德拉。

RAS 先生所说的是正确的。

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

注意事项如下:

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

2- 对于异常(exception)情况,您可以将实体保存在不同的列表中,以便进一步分析错误详细信息。在异常捕获 block 中执行。

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

--

关于java - 发生异常时如何继续批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13139236/

相关文章:

java - 使用注释属性的方面切入点

mysql - hibernate 列类型问题(MySql)

c# - 在 Web API 中从存储库级别返回错误的好方法

iphone - 如何捕获 iphone 中的所有异常?

c# - 未处理的异常 CachedRawResponse asp.net

java - 关于 Google Calendar API v3

java - httpclient 可以使用当前登录用户自动创建授权 header 作为 java URLConnection 吗?

java - Hazelcast:连接到远程集群

spring - 无法调用 "java.lang.Object.hashCode()",因为 "value"为空

java - 悲观锁定因 ObjectOptimisticLockingFailureException 而失败