Datenbanktransaktionen in Play Framework Scala-Anwendungen (Anorm)

Ich entwickle eine Anwendung mit Play Framework und Scala. Ich benutze anorm für Datenzugriffsebene. Und ich habe ein Problem, das ich nicht lösen konnte.

Kurz: Ich möchte in der Lage sein, Methoden in Datenzugriffsobjekten (dao) zu haben, um innerhalb von Transaktionen zu arbeiten und auch alleine aufgerufen zu werden.

Einzelheiten:

Ich habe Datenzugriffsebene aus Klasse mit Methoden, die nur bestimmte SQL über Datenbank ausführt. Sie sehen traditionell so aus:

def list() = DB.withConnection { implicit cn =>
  ...
}

Jetzt möchte ich einige Methoden in einem Transaktionsbereich ausführen lassen. Wie herkömmliche Select-Update-Dienstmethoden, können diese jedoch weiterhin alleine ausgeführt werden. Also, was ich in meinem Kopf habe, ist wie folgt:

class Service {
  def fooTransacted() = {
    inTransaction {
      val old = dao.select(id = 2)
      val newObj = old.copy(isActive = true)
      dao.update(newObj)
    }
  }

  def fooSinle() = {
    dao.select(id = 2)
  }
}

Ich habe verschiedene Möglichkeiten ausprobiert, konnte aber keine Lösung finden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage