如何创建未来的单位?

时间:2016-05-09 09:23:15

标签: scala playframework slick

我有这段代码:

def updateDocSetting(data: Seq[ModelDocumentSetting])=  {

    for (a <- data){    
       DocumentSettingTable
         .filter(_.doc_proc_list_id === a.doc_proc_list_id)
         .map(doc => (doc.is_mandatory,doc.is_display,doc.is_deleted))
         .update(a.is_mandatory,a.is_display,a.is_deleted)
    }

}

我有一个问题是在我的服务代码上获得未来的光滑结果 这是我的服务代码

def updateDocSetting(data: List[ModelDocumentSetting]): Future[Unit] = {
   db.run(DalDocumentSetting.updateDocSetting(data))
}
  

错误:类型不匹配;发现:所需单位:   slick.dbio.DBIOAction [单位,slick.dbio.NoStream,没什么]

1 个答案:

答案 0 :(得分:0)

您可以使用DBIOActionDBIOAction s的序列转换为单个DBIO.sequence

使用yield获取DBIO操作序列:

  for (a <- data) yield {    
     DocumentSettingTable
       .filter(_.doc_proc_list_id === a.doc_proc_list_id)
       .map(doc => (doc.is_mandatory,doc.is_display,doc.is_deleted))
       .update(a.is_mandatory,a.is_display,a.is_deleted)
   }

然后:

db.run(DBIO.sequence(DalDocumentSetting.updateDocSetting(data)))