Avatar ·

Massenhafte Dateneinfügung über JpaRepository in Spring Boot und Kotlin

Hallo zusammen! Ich schreibe eine Anwendung mit Kotlin + Spring Boot + Hibernate und muss viele Datensätze in eine CockroachDB-Tabelle einfügen. Derzeit mache ich das in einer Schleife mit saveAll(): ```kotlin @Repository interface UserRepository : JpaRepository @Service class UserService(private val repo: UserRepository) { fun insertUsers(users: List) { users.forEach { repo.save(it) } // oder repo.saveAll(users) } } ``` Problem: Wenn es 1000+ Benutzer gibt, funktioniert das sehr langsam. In den Logs ist zu sehen, dass Hibernate für jeden Datensatz ein separates INSERT erstellt. Ich habe gelesen, dass man batch inserts machen kann, verstehe aber nicht, wie man es richtig konfiguriert. Fragen: 1. Wie mache ich eine massenhafte Einfügung über JpaRepository, damit Hibernate die INSERTs in einem Batch zusammenfasst? 2. Muss ich application.yml ändern oder irgendwelche Annotationen hinzufügen? 3. Gibt es einen Unterschied zwischen saveAll() und einer Schleife mit save()? 4. Wie funktioniert das mit CockroachDB (sie unterstützt wohl batch)? Versionen: Spring Boot 3.2,