我正在使用Slick访问我的Postgres SQL数据库。
我需要进行隔离的事务(可序列化或可重复读取)。
我在这里找到了以下代码https://github.com/slick/slick/issues/218
def withIsolatedTransaction[R](level: Int)(block: => R)(implicit session: Session) = {
require(session.conn.getAutoCommit, "A transaction has already been started")
val oldLevel = session.conn.getTransactionIsolation
session.conn.setTransactionIsolation(level)
val r = session.withTransaction(block)
session.conn.setTransactionIsolation(oldLevel)
r
}
有人可以告诉我在我的代码中使用这个是否是个好主意,或者是否有更好的方法来进行事务隔离?
答案 0 :(得分:1)
这不是你要找的吗? http://slick.typesafe.com/doc/2.0.0/connection.html#transactions
(顺便说一句,你引用的代码在光滑(里程碑2.1)上有一个打开拉取请求:https://github.com/slick/slick/issues/218)