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