private def buildQuery(query: TweetQuery) = { var q = Tweets.map { t => t } query.isLocked.foreach { isLocked => q = q.filter(_.isLocked === isLocked) } query.isProcessed.foreach { isProcessed => q = q.filter(_.processFinished === isProcessed) } query.maxScheduleAt.foreach { maxScheduleAt => q = q.filter(_.expectScheduleAt < maxScheduleAt) } query.minScheduleAt.foreach { minScheduleAt => q = q.filter(_.expectScheduleAt > minScheduleAt) } query.status.foreach { status => q = q.filter(_.status === status) } query.scheduleType.foreach { scheduleType => q = q.filter(_.scheduleType === scheduleType) } q }
解决方法
也许MaybeFilter可以帮助你
https://gist.github.com/cvogt/9193220