PlayFramework - 在DBAction中执行查询

时间:2015-04-30 13:43:12

标签: scala playframework-2.3 slick-2.0

我使用Play 2.3.8和Slick 2.1.0并根据文档,我应该能够在我的控制器操作中执行查询:

val customers = TableQuery[Customers]

def index = DBAction { implicit request =>
  val result = Json.toJson(customers.list)
  Ok(result)
}

然而,当我尝试这个时,我得到一个错误 - 范围内没有隐式会话。我可以这样做:

val customers = TableQuery[Customers]

def index = DBAction { implicit request => 
  implicit val session = request.dbSession
  val result = Json.toJson(customers.list)
  Ok(result)
}

这是必需的还是更简单的方法?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用此导入(PoC)来避免隐含:

import play.api.mvc._
import play.api.Play.current
import play.api.db.slick._
import play.api.db.slick.Config.driver.simple._

...

object Products extends Controller {

  def all = DBAction { implicit rs =>
    Ok(Json.toJson(products.list))
  }

}