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 أو أكثر، فإن هذا يعمل ببطء شديد. في السجلات (logs)، يظهر أن Hibernate ينشئ INSERT منفصلاً لكل سجل. قرأت أنه يمكن عمل batch inserts، لكنني لا أفهم كيفية التهيئة بشكل صحيح. الأسئلة: 1. كيف يمكن إجراء إدراج جماعي عبر JpaRepository بحيث يقوم Hibernate بدمج INSERT في حزمة واحدة (batch)؟ 2. هل أحتاج إلى تغيير أي إعدادات في application.properties أو application.yml؟ 3. هل هناك أي اعتبارات خاصة لـ CockroachDB مقارنة بقواعد البيانات الأخرى؟ 4. هل saveAll() يقوم بالفعل بالتجميع (batching) أم لا؟