Ir al contenido

Query Inside Loop (ARCH4064)

Esta página aún no está disponible en tu idioma.

Key java.orm.query-inside-loop · Severity warning · Category orm

Issuing a repository/query call on every loop iteration (broader than relation N+1) produces needless round-trips. Fetch the data with one batched query.

for (Long id : userIds) {
User user = userRepository.findById(id).orElseThrow(); // query per iteration
process(user);
}
List<User> users = userRepository.findAllById(userIds); // single query
users.forEach(this::process);

Move per-item find/aggregate calls out of the loop into a single batched query.