sql >> Database teknologi >  >> RDS >> Mysql

Spring Boot / JPA / mySQL - mange til en relation skaber for mange SQL-forespørgsler

Dette kunne være en n + 1 problem.

Du kan bruge en JOIN FETCH i din JPA-forespørgsel for at rette dette.

Opdater dit JPA-lager på denne måde

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

}

For en mere detaljeret forklaring tjek dette svar.

PS: Jeg har ikke testet forespørgslen.




  1. MYSQL-OPDATERING med IN og Subquery

  2. Databaseresultater som objekter eller arrays?

  3. Hvordan ændrer jeg datoformatet i Postgres?

  4. Sådan rettes typiske WordPress-fejl