【发布时间】:2017-06-07 20:08:59
【问题描述】:
有人问我 scala slick 如何根据这段代码确定哪些行需要更新
def updateFromLegacy(criteria: CertificateGenerationState, fieldA: CertificateGenerationState, fieldB: Option[CertificateNotification]) = {
val a: Query[CertificateStatuses, CertificateStatus, Seq] = CertificateStatuses.table.filter(status => status.certificateState === criteria)
val b: Query[(Column[CertificateGenerationState], Column[Option[CertificateNotification]]), (CertificateGenerationState, Option[CertificateNotification]), Seq] = a.map(statusToUpdate => (statusToUpdate.certificateState, statusToUpdate.notification))
val c: (CertificateGenerationState, Option[CertificateNotification]) = (fieldA, fieldB)
b.update(c)
}
上面的代码是(如我所见)
- a) 查找所有具有“certificateState”“条件”的行
- b) 为所述列创建查询
- c) 创建了一个包含我要更新到的值的元组
然后查询用于查找需要应用元组的行。
背景
我想知道 slick 是否会跟踪要更新的行的 ID。
我想知道什么
- 幕后发生了什么?
- “val a: Query[CertificateStatuses, CertificateStatus, Seq]”中的 Seq 是什么
- 有人能指出移动部件所在的光滑源吗?
【问题讨论】: