Optional, stream czy error handling w dao

Optional, stream czy error handling w dao
VI
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:24
0

Witam,

otóż mam pytanie dotyczące takiej sytuacji: mam załóżmy funkcję w DAO: findByCity(String city) obiektu Address, który jest zawarty w obiekcie User, teraz chcę wyszukiwać userów po city np... No i co teraz? Co powinno wracać findByCity(String city)? Powinienem zwrócić List<Optional<User>>? Streama? Bo tych userów może być 0, 1, a może i tysiące.. Jak to najlepiej obsłużyć?

Z góry dziękuję.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:minuta
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2

Dlaczego nie po prostu List? (List<User>)


jeden i pół terabajta powinno wystarczyć każdemu
Michał Sikora
Michał Sikora
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Kraków
  • Postów:834
0

A czemu nie List<User>? Jeżeli nie ma użytkowników, to pusta lista. Czy potrzebujesz wiedzieć, że jakichś użytkowników nie ma?

TY
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:204
0
vizzini napisał(a):

Witam,

otóż mam pytanie dotyczące takiej sytuacji: mam załóżmy funkcję w DAO: findByCity(String city) obiektu Address, który jest zawarty w obiekcie User, teraz chcę wyszukiwać userów po city np... No i co teraz? Co powinno wracać findByCity(String city)? Powinienem zwrócić List<Optional<User>>? Streama? Bo tych userów może być 0, 1, a może i tysiące.. Jak to najlepiej obsłużyć?

Z góry dziękuję.

Możesz zwrócić List<User>,
natomiast jeśli dostajesz jakiś zbiorczy komunikat o błędzie, możesz zwrócić Either<Error, List<User>>, natomiast jeśli dostajesz jednostkowo komunikaty o błędach, możesz zwrócić List<Either<Error, User>>

Zwracanie List<Optional<User>> w sumie nie ma sensu, bo co to daje?

EDIT:
Z odpowiedziami robi się tu taki sam wyścig jak na Stack Overflow... =D

edytowany 2x, ostatnio: Tyvrel
VI
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:24
0

Rozumiem, czyli po prostu zwracać listę userów. W sumie to logiczne, przecież empty list nie dam nam null'a.

e: właśnie ten błąd też mnie zastanawiał, jak to do tego dodać: dzięki!

edytowany 1x, ostatnio: vizzini
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

@vizzini: no a ja powiem inaczej niż poprzednicy. Zwróciłbym Traversable


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
PI
ty to jesteś hipster :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.