在使用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 ...
并且无法找到解决方法,因为此用例的语法对我来说真的很新,并且没有类似的定义在例子中等。
答案 0 :(得分:1)
您的类是使用构造函数参数定义的:
class BaseDao @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] { ... }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
因此,正如错误所示,您需要在构建对象时提供DatabaseConfigProvider
的实例:
val myDatabaseConfigProvider: DatabaseConfigProvider = ...
object BaseDao extends BaseDao(myDatabaseConfigProvider) { ... }