使用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
从不超过批量:1基本.
我错过了一个设置?
解决方法
到
enable batching for both INSERT and UPDATE statements,您需要设置以下所有Hibernate属性:
<property name="hibernate.jdbc.batch_size">30</property> <property name="hibernate.order_inserts">true</property> <property name="hibernate.order_updates">true</property> <property name="hibernate.jdbc.batch_versioned_data">true</property>
如果您可以使用SEQUENCE<那么你不应该使用IDENTITY发电机,因为it disables batch fetching.
如果您不能使用SEQUENCE(例如MysqL),请尝试使用单独的机制来启用批量插入(例如jOOQ),而不是使用不会缩放并具有高性能损失的TABLE生成器.