带选项的scala持久化seq

带选项的scala持久化seq,scala,playframework,slick,Scala,Playframework,Slick,我有 此序列可能有空的ProcessStepTemplatesModel 现在,当我想像这样保存数组时: case class ProcessSteps(stepsData: Seq[ProcessStepTemplatesModel]) 由于空值,我得到了一个错误 有没有一种方法可以scip空值,而只保存非空值 我正在运行一个scala Playframework应用程序,使用slick作为数据库映射器 谢谢我建议您将过程步骤模板模型包装在选项中,以指示可能存在空值值: 案例类处理步骤(st

我有

此序列可能有空的ProcessStepTemplatesModel

现在,当我想像这样保存数组时:

case class ProcessSteps(stepsData: Seq[ProcessStepTemplatesModel])
由于空值,我得到了一个错误

有没有一种方法可以scip空值,而只保存非空值

我正在运行一个scala Playframework应用程序,使用slick作为数据库映射器


谢谢

我建议您将
过程步骤模板模型
包装在
选项
中,以指示可能存在
空值
值:
案例类处理步骤(stepsData:Seq[选项[ProcessStepTemplatesModel]])

然后
筛选(u.isDefined)
您的序列只有现有的(不可为null的)步骤,并安全地执行其余的代码。

我建议您将
过程步骤模板模型包装在
选项中
以指示可能存在
null
值:
案例类处理步骤(stepsData:Seq[选项[ProcessStepTemplatesModel]])

然后
filter(u.isDefined)
您的序列只有现有的(不可为null的)步骤,并安全地执行其余的代码。

使用
选项[Seq[ProcessStepTemplatesModel]]
而不是null如何?或者使用
Seq.empty[T]
作为默认值?选项[Seq不可能我不想保留空值,我想跳过它们关于processSteps.stepsData.filter(!=null).foreach(…)?使用
选项[Seq[processstepmetlatesmodel]
而不是null?或者使用
Seq.empty[T]
作为默认值?选项[Seq不可能我不想保留空值,我想跳过它们processSteps.stepsData.filter(!=null).foreach(…)如何?您好,我们也尝试过这个,但我在这里遇到一个错误
隐式val ProcessStepsFormat:OFormat[processSteps]=Json.format[processSteps]
错误是:Seq[Option[models.ProcessStepTemplatesModel]没有隐式格式可用。我觉得使用此对象操作的隐式格式应该由您自己重写和定义。看起来像guyz在讨论相关问题,不是吗?应该,根据和,这与您的情况非常相似。我想我们也尝试过,但后来我在这里遇到了一个错误
implicit val ProcessStepsFormat:OFormat[ProcessSteps]=Json.format[ProcessSteps]
错误是:Seq[Option[models.ProcessStepTemplatesModel]没有隐式格式可用。我有一种感觉,用于操作此对象的隐式格式应该由您自己重写和定义。看起来像guyz在讨论相关问题,不是吗?应该,根据和,我认为这与您的案例非常相似
request.body.asJson.foreach(f = _.validate[ProcessSteps] match {
      case JsSuccess(processSteps, _) =>
        // PROBLEM HIER
        processSteps.stepsData.foreach(processStep => processTemplateDTO.addProcessStepTemplateToProcessTemplate(processStep, processId).map {