玩 Scala Slick 交易
Play Scala Slick transactions
我想在Play
Slick
Scala
中使用transactions
我有三种不同的方法,returns 布尔值
def updateFirst()
def updateSecond()
def updateThird()
我正在尝试 运行 下面的命令,但似乎 transactionally
找不到命令
val operations =
for {
_ <- updateFirst()
_ <- updateSecond()
_ <- updateThird()
} yield ()
sync(db.run(operations).transactionally))
我的 slick 相关代码库 sbt 版本如下:
"com.typesafe.play" %% "play-slick" % "2.0.0",
"com.typesafe.play" %% "play-slick-evolutions" % "2.0.0",
"com.typesafe.slick" %% "slick" % "3.0.1",
甚至 DBIO 也没有显示任何内容。
感谢任何帮助或引导。
看看这个答案:
它已经被多次覆盖 - 只要它们 return DBIO[T]
(其中 T
是您的结果类型),您只能在事务中组合操作。在您的情况下,您的方法应该 return:
def updateFirst(): DBIO[Boolean]
def updateSecond(): DBIO[Boolean]
def updateThird(): DBIO[Boolean]
你的最后一行应该是:
sync(db.run(operations.transactionally))
(transactionally
在 DBIO
上调用,而不是在 Future
上调用)
另请查看以下幻灯片:http://slides.com/pdolega/slick-101#/85
我想在Play
Slick
Scala
transactions
我有三种不同的方法,returns 布尔值
def updateFirst()
def updateSecond()
def updateThird()
我正在尝试 运行 下面的命令,但似乎 transactionally
找不到命令
val operations =
for {
_ <- updateFirst()
_ <- updateSecond()
_ <- updateThird()
} yield ()
sync(db.run(operations).transactionally))
我的 slick 相关代码库 sbt 版本如下:
"com.typesafe.play" %% "play-slick" % "2.0.0",
"com.typesafe.play" %% "play-slick-evolutions" % "2.0.0",
"com.typesafe.slick" %% "slick" % "3.0.1",
甚至 DBIO 也没有显示任何内容。
感谢任何帮助或引导。
看看这个答案:
它已经被多次覆盖 - 只要它们 return DBIO[T]
(其中 T
是您的结果类型),您只能在事务中组合操作。在您的情况下,您的方法应该 return:
def updateFirst(): DBIO[Boolean]
def updateSecond(): DBIO[Boolean]
def updateThird(): DBIO[Boolean]
你的最后一行应该是:
sync(db.run(operations.transactionally))
(transactionally
在 DBIO
上调用,而不是在 Future
上调用)
另请查看以下幻灯片:http://slides.com/pdolega/slick-101#/85