spring引导jpa批插入异常处理

h22fl7wq  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(301)

我正在研究一个实时用例,它需要通过springbootjpa将所有的模型对象添加到列表中,并将批处理消息加载到sqlserver表中 repository.saveAll(list) . 由于性能原因,我无法逐个记录插入。我正在寻找以下选项。
是否有任何方法可以读取导致错误的消息并继续将其他记录插入表中。我必须将此错误消息存储在某个位置,不应传递给下游应用程序。

jdzmm42g

jdzmm42g1#

这个 saveAll spring data jpa的方法实际上是逐个保存记录列表:

/*
 * (non-Javadoc)
 * @see org.springframework.data.jpa.repository.JpaRepository#save(java.lang.Iterable)
 */
@Transactional
@Override
public <S extends T> List<S> saveAll(Iterable<S> entities) {

    Assert.notNull(entities, "Entities must not be null!");

    List<S> result = new ArrayList<S>();

    for (S entity : entities) {
        result.add(save(entity));
    }

    return result;
}

因此,自己处理消息循环与让它通过springdatajpa来完成这项工作完全没有区别。
我认为你只需要自己循环信息,自己捕捉错误:

for(EnitityType entity: list){
  try{
    repository.save(entity);
  } catch (Exception e){
    // Do what you want
  }
}

相关问题