Я думаю, вы неправильно поняли смысл Option[T]
в качестве возвращаемого значения.Возвращение Seq[Option[T]]
- это анти-паттерн, и вот почему:
Option[T]
имеет смысл, когда нет гарантии, что вы что-нибудь найдете.FindById - отличный пример того, где это полезно - мы либо находим что-то и получаем Some(value)
, либо не получаем и получаем None
.
Но если вы планируете найти по нескольким идентификаторам и хотите Seq
найденных значений, тогда есть два случая: либо Seq
пусто и ничего не найдено, либо Seq
содержит некоторые элементы.Нет смысла иметь Option[T]
внутри Seq
, потому что внутри последовательности не будет никаких None
s.Вы будете вынуждены использовать дополнительное сопоставление с образцом или дополнительную карту, которая абсолютно бессмысленна.
Я думаю, вам будет лучше изменить сигнатуру типа на Future[Seq[Event]]