Ciągłe wykonywanie orElse w mapowaniu

0

Dlaczego za każdym razem mam i tak dodaje do bazy (save) skoro repo.findByNameIn(myName) znajduje juz rekordy w bazie
myNames jest listą stringów

myNames.stream()
    .map(myName -> repo.findByNameIn(myName)
        .orElse(save(myName)))
    .collect(Collectors.toList())

oczywiście repo.findByNameIn(myName) zwraca Optional'a

8

orElse() zawsze wykonuje alternatywną instrukcję. Zamień to na orElseGet() i z głowy - wtedy instrukcja alternatywna zostanie wykonania dopiero w przypadku, gdy to repo zwróci Ci pustego Optionala.

0

@Belka: ok, działa, dzieki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1