未指定值参数:dbConfigProvider: DatabaseConfigProvider

Unspecified value parameters: dbConfigProvider: DatabaseConfigProvider

在努力定义一个简单的普通 SQL DAO 的背景下,分别使用 Play 和 Slick 最新版本 2.4.x 和 3.0.3。我有以下内容:

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
}

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

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

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

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

val myDatabaseConfigProvider: DatabaseConfigProvider = ...

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