作者:落可可lookeke | 来源:互联网 | 2023-07-08 17:36
原标题:spring data jpa 批量保存更新问题
使用jpa批量保存文章来源地址43423.html时,看日志发现是一条一条打印的,然后去看了下源码,果然是文章来源地址43423.html循环调用的单个保存(巨坑啊)
经查询jpa是可以实现批量保存更新的,具体设置如下:
spring.jpa.properties.hibernatewww.yii666.com.jdbc.batch_size=500
spring.jpa.properties.hibernate.jdbc.batch_versioned_data=true
spring.jpa.properties.hibernate.order_inserts=true
spring.jpa.properties.hibernate.order_updates =true
其中:batch_size根据自己的数据库情况来设置
配置好后,感觉终于可以批量保存了,立马试了一把,结果,一首凉凉。。。(并没什么用)
继续查资料,终于发现了还有一个坑,那就是jpa中主键策略会影响批量功能!!
如果www.yii666.com主键策略使用了IDENTITY 也就是@GeneratedValue(strategy = GenerationType.IDENTITY),那么批量功能不支持的,
如果要开启批量,那么就要使用sequence策略,也就是@GeneratedValue(strategy = GenerationType.SEQUENCE),
然后立马去开启,结果发现再次入坑,原来mysql数据库是无法使用sequence策略的,已泪奔。。。。。
批量功能只能自己去单独找寻方法实现了。
如果有错误的地方,烦请指正,有更好的方法,欢迎交流。。。
具体参考资料如下:
https://www.baeldung.com/jpa-hibernate-batch-insert-update
https://w文章来源站点https://www.yii666.com/ww.jianshu.com/p/0a7376ca70cd
来源于:spring data jpa 批量保存更新问题