Potrebbe trattarsi di un n + 1
problema.
Puoi utilizzare un JOIN FETCH
nella tua query JPA per risolvere questo problema.
Aggiorna il tuo repository JPA in questo modo
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);
}
Per una spiegazione più dettagliata, consulta questo rispondi.
PS: Non ho testato la query.