事务中的多个批处理插入

时间:2013-06-18 01:55:22

标签: java hibernate jdbc

我正在尝试使用hibernate批量插入从文件中插入每100条记录。如果我将逻辑包装在一个事务中,它是否会按预期工作,例如,假设我正在创建300条记录和包装中的3批如果第三批出现问题,那么事务内部的逻辑就会回滚第一批和第二批。

2 个答案:

答案 0 :(得分:2)

始终将您的批包装在一个事务中。如果您为每个事务批处理100个插入,那么如果一切正常,则全部100个将被提交。我还建议您使用无状态会话来加速批量插入。我强烈建议您阅读Hibernate文档的Batch processing教程。

答案 1 :(得分:0)

简而言之:它将按预期运作。

Hibernate没有限制,每个批量插入都需要在一个单独的事务中。如果在一个事务中执行多个批量插入,它们将作为整体提交/回滚。

(当然,如果你有嵌套交易或在交易中使用里程碑,这是另一个故事。)