Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Spring Boot / JPA / mySQL - relacja wiele do jednego tworzy zbyt wiele zapytań SQL

Może to być n + 1 problem.

Możesz użyć JOIN FETCH w zapytaniu JPA, aby to naprawić.

Zaktualizuj swoje repozytorium JPA w ten sposób

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

}

Aby uzyskać bardziej szczegółowe wyjaśnienie, zapoznaj się z to odpowiedź.

PS: Nie testowałem zapytania.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porządkowanie liczb całkowitych w wielu kolumnach

  2. MySQL:Lewy sprzężenie i kolumna o tej samej nazwie w różnych tabelach

  3. Lepiej użyć mniej niż równe lub w zapytaniu sql

  4. Jak wyeksportować plik csv na komputer w mysql

  5. Zapisz zapytanie mysql do pliku Excela ze strony php