0
与表定义像这样的:油滑:拿到表名
class Test(_tableTag: Tag) extends Table[TestRow](_tableTag, "test") { ... }
我怎样才能从Test
一个实例拿回表名(标签“测试”)?
事情是我可以完美执行一些查询,如db run TableQuery[Test].result
,但要写原始的sql,我需要表名。
与表定义像这样的:油滑:拿到表名
class Test(_tableTag: Tag) extends Table[TestRow](_tableTag, "test") { ... }
我怎样才能从Test
一个实例拿回表名(标签“测试”)?
事情是我可以完美执行一些查询,如db run TableQuery[Test].result
,但要写原始的sql,我需要表名。
如果你看看油滑的TableQuery
ScalaDoc有一个叫baseTableRow
方法,说:
def baseTableRow: E
获得“原始”表行是表示表本身,而不是 到表的类型变量的路径。这种方法应该不会从用户代码中调用 。
所以你去E <: AbstractTable
的 “定义”(AbstractTable
)Scaladoc,找到你需要的东西,即val tableName: String
。这里的诀窍是知道在哪里看(可能的隐式转换和其他的东西......),也就是如何浏览Scala(Doc)rabbithole。 xD
'myTableQuery.baseTableRow.tableName'? –
@ insan-e是的,谢谢!如果你喜欢,你可以添加它作为答案。 – JulienD