Использование функции для обновления значения класса дела в scala Quill - PullRequest
0 голосов
/ 05 апреля 2020

У меня следующий класс дел

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 вручную в коде

1 Ответ

0 голосов
/ 05 апреля 2020

попробуйте использовать copy метод из класса объекта case и передайте новую дату, содержащую текущую дату:

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