sql >> Databáze >  >> RDS >> Mysql

Spring Boot / JPA / mySQL - vztah mnoho k jednomu vytváří příliš mnoho SQL dotazů

Může to být n + 1 problém.

Můžete použít JOIN FETCH ve vašem dotazu JPA, abyste to opravili.

Aktualizujte své úložiště JPA takto

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

}

Pro podrobnější vysvětlení se podívejte na toto odpovědět.

PS: Dotaz jsem netestoval.




  1. Otázky o typech v MySQL

  2. PSQLException:aktuální transakce je přerušena, příkazy ignorovány až do konce bloku transakce

  3. Upozornění:mysqli_num_rows() očekává přesně 1 parametr, 2 dané | mysql |mysqli

  4. mySQL přidávání dat zalomení sloupců