База данных транзакций в приложениях Play Framework scala (анорм)

Я разрабатываю приложение с использованием Play Framework и Scala. Я использую анорм для слоя доступа к данным. И у меня есть проблема, которую я не мог решить.

Коротко: Я хочу иметь возможность иметь методы в объектах доступа к данным (dao) для работы внутри транзакций, а также вызываться в одиночку.

Подробности:

У меня есть слой доступа к данным, состоящий из класса с методами, которые выполняют только определенный SQL над базой данных. Традиционно они выглядят так:

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

Теперь я хочу иметь несколько методов, которые будут выполняться в области транзакции. Подобно традиционным методам выбора-обновления, но все же можно запускать их в одиночку. Итак, что я имею в виду, так:

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

Я пробовал несколько способов, но не мог найти никакого решения.

Ответы на вопрос(2)

Ваш ответ на вопрос