Slick的Scaladoc中定义的.ddl方法在哪里

时间:2014-11-29 16:39:42

标签: scala slick-2.0

我已经想出了创建一个Postgres表,我需要有这个导入行 import slick.driver.PostgresDriver.simple._

但是,当我查看Simple Scaladoc时,我找不到ddl的方法,我找错了地方吗?这对我来说是一次练习Scaladocs的练习。我可以看到TableQuery有别名,但我没有看到添加任何额外的方法。

TLDR:Slick 2.1.0的scala文档中定义的ddl方法在哪里?

1 个答案:

答案 0 :(得分:0)

方法 ddl 的定义包含在类TableQueryExtensionMethodsSequence的说明中。例如,可以通过Scaladoc的index找到它。

为什么这有意义?

考虑以下代码让我自己困惑了一段时间:

import scala.slick.driver.H2Driver.simple._
// [..]
val dict = TableQuery[Dict]
// [..]
// Create the dictionary table and insert some data
dict.ddl.create

首先,请注意给定示例中的导入与问题中的导入非常相似。我只是使用不同的数据库。

方法 ddl 应用于TableQuery[Dict]类型的值,尽管类TableQuery显然不包含此方法。

相反,显示类TableQueryExtensionMethods包含此方法。

TableQueryExtensionMethods implementation表明Slick的开发人员使用隐式转换 > TableQuery TableQueryExtensionMethods

 implicit def tableQueryToTableQueryExtensionMethods [T <: Table[_], U](q: Query[T, U, Seq] with TableQuery[T]) 
    = new TableQueryExtensionMethods[T, U](q)

这允许执行行

dict.ddl.create

从上面的例子中可以看出。