未指定的值参数:dbConfigProvider:DatabaseConfigProvider

时间:2015-09-30 07:54:14

标签: scala playframework slick

在使用Play和Slick最新版本2.4.x和3.0.3分别定义简单的纯SQL DAO的过程中。我有以下内容:

import javax.inject.Inject
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
import slick.driver.JdbcProfile
import slick.driver.PostgresDriver.api._
import slick.lifted.TableQuery

import models.Tables._

class BaseDao @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] {
  import driver.api._

  val fundQuery = TableQuery[Fund]
}

object BaseDao extends BaseDao { /// <<<<<<<<<< Error here 
  // empty
}

我在Unspecified value parameters: dbConfigProvider: DatabaseConfigProvider行上收到错误object BaseDao ...并且无法找到解决方法,因为此用例的语法对我来说真的很新,并且没有类似的定义在例子中等。

1 个答案:

答案 0 :(得分:1)

您的类是使用构造函数参数定义的:

class BaseDao @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] { ... }
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

因此,正如错误所示,您需要在构建对象时提供DatabaseConfigProvider的实例:

val myDatabaseConfigProvider: DatabaseConfigProvider = ...

object BaseDao extends BaseDao(myDatabaseConfigProvider) { ... }