hibernate批量更新与批处理

时间:2014-08-14 05:08:15

标签: hibernate jdbc hibernate-batch-updates

我有一个代码,它使用hibernate批量更新功能(更新表set =:arg,其中id =:id ...)在for循环中更新一堆表或记录。因此,如果要更新100条记录,则会从hibernate触发100次更新。有没有办法将这些多个更新打包成一个批量更新(读取jdbc批处理)(或者至少减少更新被激活)? 我理解hibernate隐式执行批处理,但在上面的情况下它似乎没有发生。

1 个答案:

答案 0 :(得分:0)

Hibernate在刷新时尝试batch DML operations,因此请让用户设置以下属性:

<property name="hibernate.order_inserts" value="true"/>
<property name="hibernate.order_updates" value="true"/>
<property name="hibernate.jdbc.fetch_size" value="20"/>
<property name="hibernate.jdbc.batch_size" value="50"/>

还要考虑IDENTITY生成器disable JDBC batching