2016-11-07 4 views
0

С определением таблицы, как этот:Slick: получить имя таблицы

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

как я могу получить обратно имя таблицы (тег «тест») из экземпляра Test?

Дело в том, что я могу отлично выполнить некоторые запросы, такие как db run TableQuery[Test].result, но для записи raw sql мне нужно имя таблицы.

+1

'myTableQuery.baseTableRow.tableName'? –

+0

@ insan-e Да, спасибо! Вы можете добавить его в качестве ответа, если хотите. – JulienD

ответ

3

Если вы посмотрите на Slick-х TableQuery ScalaDoc есть метод, называемый baseTableRow, который говорит:

def baseTableRow: E

Получить «сырой» строку таблицы, которая представляет сама таблица, в отличие к Путь для переменной типа таблицы. Этот метод должен , как правило, не вызываться из кода пользователя.

Так вы идете в E <: AbstractTable «ы„определение“(AbstractTable) Scaladoc и найти то, что вам нужно, а именно val tableName: String. Трюк здесь заключается в том, чтобы знать, где искать (возможные неявные преобразования и другие вещи ...), то есть как перемещаться по раввинолу Scala (Doc). xD

Смежные вопросы