光滑:得到表名

时间:2016-11-07 12:29:58

标签: slick-3.0

使用像这样的表定义:

class Test(_tableTag: Tag) extends Table[TestRow](_tableTag, "test") { ... }

如何从Test的实例中取回表名(标记“test”)?

问题是我可以完美地执行一些查询,例如db run TableQuery[Test].result,但是为了编写原始sql,我需要表名。

1 个答案:

答案 0 :(得分:5)

如果你看一下Slick的TableQuery ScalaDoc,就会有一个名为baseTableRow的方法,它说:

  

def baseTableRow: E

     

获取表示表本身的“原始”表格行,而不是   到表的类型的变量的路径。这个方法应该   通常不会从用户代码中调用。

所以你转到E <: AbstractTable的“定义”(AbstractTableScaladoc并找到你需要的东西,即val tableName: String。这里的诀窍是知道在哪里看(可能是隐式转换和其他东西......),也就是说,如何导航Scala(Doc)rabbithole。的xD