类型不匹配,预期:DBIOAction[NotInferedR,NoStream,Nothing],实际:Future[



当我尝试更新数据库中的某些值时,我使用 db.run

类型不匹配,预期:DBIOAction[NotInferedR, NoStream, Nothing],实际:Future[PortalPostgresProfile.ProfileAction[Int, NoStream, Effect.Write]]

  def updateEmployerProductSettings(employer: Employer, 
    newProductSettingsInfo: ProductSettingsInfo, now: LocalDateTime): 
    Future[Int] = {

    val query = for {
      oldProductSettings <- getEmployerProductSettings(employer)
//((returns Future[ProductSettings]
    } yield {
//yield flattens the Future and i get only ProductSettings
//then i filter the TableQuery[ProductSettingsTable] by id
      productSettingsQuery.filter(_.employerId === employer.id)
//then map the productSetting by fields and update
      .map(
        productSettings =>
          (productSettings.enableSC,
            productSettings.enableLCon,
            productSettings.enableLRe,
            productSettings.enableLP,
            productSettings.SC,
            productSettings.enableL,
            productSettings.clearedAt))
        .update((
          newProductSettingsInfo.enableSC,
          newProductSettingsInfo.enableLCon,
          newProductSettingsInfo.enableLRe,
          newProductSettingsInfo.enableLP,
          newProductSettingsInfo.SC,
          newProductSettingsInfo.enableL,
          if (!oldProductSettings.clearedCanLoadSC && 
          newProductSettingsInfo.clearedCanLoadSC) Some(now) 
          else oldProductSettings.clearedAt
        ))
      }
     db.run(query)
   }

db.run 不起作用,如何将类型更改为预期类型?

类型不匹配,预期:DBIOAction[NotInferedR, NoStream, Nothing],实际:Future[PortalPostgresProfile.ProfileAction[Int, NoStream, Effect.Write]]

尝试

db.run(DBIO.sequence(query))

db.run(DBIO.from(query).flatten)

最新更新