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.