Avatar ·

通过JpaRepository在Spring Boot和Kotlin中进行批量数据插入

大家好!我正在用Kotlin + Spring Boot + Hibernate编写一个应用程序,需要向CockroachDB表中插入大量记录。目前我通过循环使用saveAll()来实现: ```kotlin @Repository interface UserRepository : JpaRepository @Service class UserService(private val repo: UserRepository) { fun insertUsers(users: List) { users.forEach { repo.save(it) } // 或 repo.saveAll(users) } } ``` 问题:如果有1000+用户,运行非常慢。日志显示Hibernate为每条记录创建单独的INSERT。我读到可以进行batch inserts,但不知道如何正确配置。 问题: 1. 如何通过JpaRepository进行批量插入,让Hibernate将INSERT合并成一个batch? 2. 是否需要修改application.yml或添加某些注解? 3. saveAll()和循环save()有区别吗? 4. 这对CockroachDB(它似乎支持batch)如何工作? 版本:Spring Boot 3.2