通过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