PlayFramework Scala: Как установить соединение по умолчанию с Hikaricp - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь получить соединение из конфигурации по умолчанию Hikaricp.Ниже приводится application.conf

modules {
  enabled += "play.api.db.DBModule"
  enabled += "play.api.db.HikariCPModule"
  enabled += "modules.AppModule"
}
db.default.hikaricp.dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
db.default.hikaricp.dataSource.user=rp
#db.default.hikaricp.dataSource.url="postgres://rp:password@localhost/profile"
db.default.hikaricp.dataSource.password=password
db.default.hikaricp.dataSource.databaseName=profile
db.default.hikaricp.dataSource.serverName=localhost
db.default.hikaricp.connectionTestQuery = "SELECT 1"

, поскольку Play поддерживает пул соединений.Теперь я не могу найти способ получить соединение, созданное выше Play.Я пробовал следующее (1, 2, 3):

//1. Injecting
import slick.jdbc.PostgresProfile.api._

class DBConnection @Inject()(db: Database) {

}
 // 2. Mentioned here.

object DBConnection {
implicit val db = DatabaseConfigProvider.get[JdbcProfile](Play.current).db
//implicit val db = Database.forConfig("default") (3)
}

Как я могу получить соединение из default пула соединений?

Дополнительные сведения: Версия Play Framework: 2.16.9
Версия Scala: 2.12.6
Зависимость Postgres org.postgresql" % "postgresql" % "9.4-1206-jdbc42.Добавлено logs здесь для всех трех попыток.

1 Ответ

0 голосов
/ 23 января 2019

Вы можете использовать play.api.db.DBApi, например:

class DatabaseService @Inject()(dbApi: DBApi)
                               (implicit ec: DatabaseExecutionContext) {
   lazy val database = dbApi.database("default")
   ...
}
...