Va bene fare IO all'interno di java 8 streams?

4

Esempio di domanda nel titolo:

List<UUID> ids = dao1.getContactsOfUser(userId);
List<String> contact_names = ids.stream
    .map(uid -> dao2.getContactByUid(uid)) //is it ok? 
    .filter(contact -> contact.getPhone!=null)
    .map(contact -> contact.getFullName())
    .collect(Collectors.toList());

So che funziona, e funziona anche bene, ma non ci sono intoppi?

    
posta Ivan Zelenskyy 26.02.2016 - 09:47
fonte

1 risposta

2

Is it OK to do IO inside java 8 streams? Depends on what you mean by OK.

»OK« nel senso di funziona : si perché non dovrebbe.

»OK« nel senso di dovrei : No!

Questo è non incoraggiato . Non ha senso recuperare prima un utente con una chiamata al database e poi recuperare i contatti con n più richieste semplicemente perché si desidera il nome del contatto, quando una richiesta lo farà?

Migliora la tua query partecipando al nome dei contatti e crea una colonna aggregata, che contiene le informazioni necessarie.

    
risposta data 26.02.2016 - 10:59
fonte

Leggi altre domande sui tag