Я хочу выбрать некоторые строки, обновить их и вернуть обновленные значения, но я не понимаю, как это сделать с помощью Slick. Вот пример. Я хочу, чтобы выбрать все задачи, которые ожидающие выполнения, блокировать их, изменение статусов в ходе и вернуться обновленные задачи:Slick. Выберите и затем обновите выбранные строки.
object Test {
case class Task(id: Int, status: String)
class TaskTable(tag: Tag) extends Table[Task](tag, "tasks") {
def id = column[Int]("id")
def status = column[String]("status")
def * = (id, status) <>(Task.tupled, Task.unapply)
}
val tasks = TableQuery[TaskTable]
def selectWaitingTasksAndChangeStatus(): Seq[Task] = {
tasks.filter(_.status === "awaitingExecution").forUpdate
// Here I want to change status to "inProgress" and
// return tasks to client code with "inProgress" status
}
}
Какую версию Slick вы используете? –
@ Paweł Jurczenko 3.2.0-M1 –