0

我有以下案例类

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)
        }
      )
    )
}

我希望将更新方法中modifiedDate的字段Tag替换为CURRENT_TIMESTAMP. 怎么做到呢?

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

4

1 回答 1

1

尝试使用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)
        }
      )
    )
于 2020-04-05T16:24:49.837 回答