Mysql
 sql >> Base de données >  >> RDS >> Mysql

Spring Boot / JPA / mySQL - une relation plusieurs à un crée trop de requêtes SQL

Cela pourrait être un n + 1 problème.

Vous pouvez utiliser un JOIN FETCH dans votre requête JPA pour résoudre ce problème.

Mettez à jour votre référentiel JPA comme ceci

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);

}

Pour une explication plus détaillée, consultez ceci réponse.

PS : Je n'ai pas testé la requête.