如何为批量插入配置spring boot和data jpa

时间:2018-01-29 12:30:11

标签: oracle spring-boot spring-data-jpa

我使用spring boot和spring数据jpa与hibernate,japrepository.save(List)花了20分钟将8000条记录保存到oracle数据库。有人可以帮助我解决它。在application.properties中添加spring.jpa.properties.hibernate.jdbc.batch_size = 1000也没有帮助。

application.properties server.servlet-path = / * spring.datasource.jndi-name = jdbc / mydatasource spring.datasource.testWhileIdle = true spring.datasource.validationQuery = SELECT 1 spring.jpa.database-platform = org。 hibernate.dialect.Oracle10g方言spring.jpa.properties.hibernate.jdbc.batch_size = 1000

2 个答案:

答案 0 :(得分:2)

问题可能是序列的allocationSize,因为对于每个插入,它将获得一个昂贵的操作的新序列号。

如果您可以将allocationSize设置为适合您案例的更高值。

答案 1 :(得分:0)

尝试使用合理的batch_size,如50或30.除此之外,尝试设置参数

spring.jpa.hibernate.order_inserts=true spring.jpa.hibernate.order_updates=true

因此,在发送到数据库之前,会对插入和更新进行排序。另请查看此处Spring Boot JPA Bulk inserthttps://memorynotfound.com/hibernate-jpa-batch-insert-batch-update-example/

有关更多示例和详细信息。