我有这段代码:
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,没什么]
答案 0 :(得分:0)
您可以使用DBIOAction
将DBIOAction
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)))