我在 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/