play.api.db.slick.Config.driver.simple の正体

イシュー

  • slick で「import play.api.db.slick.Config.driver.simple._ 」しているが、これのコードを知りたい

参考

scalaのパッケージ文法

  • scalaのパッケージ宣言は、クラス以外に、ブロック内のコード、関数もパッケージになる。
object Config extends Config {
  def app = play.api.Play.current
  lazy val driver: JdbcDriver = driver()(app)
}

参考

driver関数の型は、「scala.slick.driver.JdbcDriver」

  • JdbcDriver traitに、simple っていう関数がある。
    • simple ていう関数の型が SimpleQLっていう trait

A collection of values for using the query language with a single import statement. This provides the driver's implicits, the Database and Session objects for DB connections, and commonly used query language types and objects.

参考

結論

  • play.api.db.slick.Config.driver.simple の正体は、scala.slick.profile.RelationalProfile.SimpleQL というtraitであり、このtraitのメソッド(Table, Columnなど)を使用することができる。

    参考

  • Slick 2.0.1
    • SimpleQL