İçeriğe geç

Döngü İçinde Sorgu (ARCH4064)

Anahtar java.orm.query-inside-loop · Önem warning · Kategori orm

Döngünün her turunda bir repository/sorgu çağrısı yapmak (ilişki N+1’inden daha geniş) gereksiz round-trip üretir. Veriyi tek bir toplu sorgu ile çekin.

for (Long id : userIds) {
User user = userRepository.findById(id).orElseThrow(); // tur başına sorgu
process(user);
}
List<User> users = userRepository.findAllById(userIds); // tek sorgu
users.forEach(this::process);

Döngüdeki tekil find/aggregate çağrılarını döngü dışında tek bir toplu sorguya taşıyın.