一尘不染

如何在hibernate中启用批量插入?

hibernate

使用hibernate时,当我尝试使用以下方式启用批量插入时

  <property name="jdbc.batch_size">50</property>

我得到以下输出:

 [...] cfg.SettingsFactory INFO  - JDBC batch updates for versioned data: disabled
 [...] cfg.SettingsFactory INFO  - Order SQL inserts for batching: disabled

然后这个:

 [...] jdbc.AbstractBatcher DEBUG - Executing batch size: 1

batch size: 1基本上没有。

我是否缺少设置?


阅读 340

收藏
2020-06-20

共1个答案

一尘不染

原来在这种情况下缺少的是:

<property name="order_inserts">true</property>

现在我明白了

 [...] cfg.SettingsFactory INFO  - Order SQL inserts for batching: enabled
 ...
 [...] Executing batch size: 2

频繁得多(任何大于1的值基本上都意味着它成功完成了批量插入)。

hibernate.jdbc.batch_versioned_data也可能有用。

jdbc:mysql:// localhost:3306 / batch?rewriteBatchedStatements =
true类型连接字符串也可能以某种方式相关。

https://forum.hibernate.org/viewtopic.php?p=2374413,另请参阅

2020-06-20