Dies könnte ein n + 1
sein
Problem.
Sie können einen JOIN FETCH
in Ihrer JPA-Abfrage, um dies zu beheben.
Aktualisieren Sie Ihr JPA-Repository wie folgt
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);
}
Eine ausführlichere Erklärung finden Sie unter dies Antwort.
PS: Ich habe die Abfrage nicht getestet.