Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Spring Boot / JPA / mySQL - muitos para um relacionamento cria muitas consultas SQL


Pode ser um n + 1 problema.

Você pode usar um JOIN FETCH em sua consulta JPA para corrigir isso.

Atualize seu repositório JPA assim
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 uma explicação mais detalhada, confira isto responda.

PS: Não testei a consulta.