İçeriğe geç

Döngüde Lazy Yükleme (ARCH4059)

Anahtar java.orm.lazy-load-in-loop · Önem warning · Kategori orm

Döngünün her turunda lazy bir ilişkiye erişmek, eager yükleme yapılmadığında N+1’i tetikler. İlişkiyi döngüden önce eager yükleyin.

List<Department> deps = departmentRepository.findAll();
for (Department d : deps) {
int count = d.getEmployees().size(); // her turda lazy SELECT
}
@EntityGraph(attributePaths = "employees")
List<Department> findAll();
List<Department> deps = departmentRepository.findAll();
for (Department d : deps) {
int count = d.getEmployees().size();
}

Döngüde dokunulan ilişkiyi @EntityGraph veya JOIN FETCH ile önceden yükleyin.