使用像这样的表定义:
class Test(_tableTag: Tag) extends Table[TestRow](_tableTag, "test") { ... }
如何从Test
的实例中取回表名(标记“test”)?
问题是我可以完美地执行一些查询,例如db run TableQuery[Test].result
,但是为了编写原始sql,我需要表名。
答案 0 :(得分:5)
如果你看一下Slick的TableQuery
ScalaDoc,就会有一个名为baseTableRow
的方法,它说:
def baseTableRow: E
获取表示表本身的“原始”表格行,而不是 到表的类型的变量的路径。这个方法应该 通常不会从用户代码中调用。
所以你转到E <: AbstractTable
的“定义”(AbstractTable
)Scaladoc并找到你需要的东西,即val tableName: String
。这里的诀窍是知道在哪里看(可能是隐式转换和其他东西......),也就是说,如何导航Scala(Doc)rabbithole。的xD