我有以下案例类
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
替换更新方法中Tag
的modifiedDate
字段。如何做到这一点?
一种选择是在更新之前,我在代码中手动设置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)
}
)
)