SkyWalker
SkyWalker

Reputation: 14309

Unspecified value parameters: dbConfigProvider: DatabaseConfigProvider

In the context of battling to define a simple plain SQL DAO using Play and Slick latest versions 2.4.x and 3.0.3 respectively. I have the following:

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
}

I get the error Unspecified value parameters: dbConfigProvider: DatabaseConfigProvider on the line object BaseDao ... and can't find how to fix this as the syntax for this use-case is really new to me and there are no similar definitions in the examples etc.

Upvotes: 0

Views: 2158

Answers (1)

Shadowlands
Shadowlands

Reputation: 15074

Your class is defined with a constructor parameter:

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

So, as the error suggests, you need to provide an instance of a DatabaseConfigProvider when building the object:

val myDatabaseConfigProvider: DatabaseConfigProvider = ...

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

Upvotes: 1

Related Questions