sql >> Base de Datos >  >> RDS >> Mysql

Spring Boot/JPA/mySQL:la relación muchos a uno crea demasiadas consultas SQL

Esto podría ser un n + 1 problema.

Puede usar un JOIN FETCH en su consulta JPA para arreglar esto.

Actualice su repositorio JPA así

public interface MessagesRepository extends CrudRepository<Message, Long> { 
    
    @Query("Select m from Message m join fetch m.sender ms join fetch m.receiver mr where ms.id = :senderId or mr.id = :receiverId order by m.time desc")
    List<Message> findBySenderIdOrReceiverIdOrderByTimeDesc(Long senderId, Long receiverId);

}

Para obtener una explicación más detallada, consulte esto respuesta.

PD: No he probado la consulta.