使用函数更新scala-Quill中的case类值



我有以下案例类

case class Tag(key: String, value: String, modifiedDate: Date)

我有一个数据访问对象,看起来像这样:

class TagDao(implicit val ec: ExecutionContext, val ctx: PostgresAsyncContext[SnakeCase]) {
def update(tag: Tag): Future[Int] = 
performIO(
runIO(
quote {
query[Tag]
.filter(_.id == tag.id)
.update(lift(tag))
.returning(_.id)
}
)
)
}

我希望用CURRENT_TIMESTAMP替换更新方法中TagmodifiedDate字段。如何做到这一点?

一种选择是在更新之前,我在代码中手动设置modifiedDate

尝试从case类对象中使用copy方法,并传递包含当前日期的新日期:

def update(tag: Tag): Future[Int] = 
performIO(
runIO(
quote {
query[Tag]
.filter(_.id == tag.id)
.update(
lift(tag.copy(modifiedDate = new Date()))
)
.returning(_.id)
}
)
)

相关内容

  • 没有找到相关文章

最新更新