Я пытаюсь запустить запрос SELECT *
-style в Slick для представления. В идеале, я получаю функцию, с помощью которой вы можете передать набор имен столбцов в виде Seq[String]
и выполнить запрос SELECT col1, col2, ... FROM view
. Если это невозможно, тогда было бы приемлемым просто вернуть все столбцы (SELECT * FROM view
).
Я знаю, что могу сделать это, определив класс Table
для этого представления, а также сопутствующий класс case, но некоторые из этих представлений содержат сотни столбцов (для которых требуются вложенные кортежи, учитывая, что существует ограничение на 22 элемента на кортежах), и есть много просмотров, которые я должен был бы сделать для этого, так что много кода для записи/создания/поддержки. Я бы хотел избежать этого, если это вообще возможно.
Это можно сделать в Slick? Либо путем определения класса Table
без необходимости определять столбцы в статическом коде (инициализация какого-либо класса с динамическим списком столбцов столбцов была бы приемлемой), либо просто создавая SQL-запрос, используя sql"""..."""
и как-то получая .as[...]
до дескриптор возвращающий набор столбцов произвольной длины?
Мне не нужно делать что-то особенное с фактическими типами столбцов: на стороне базы данных у нас есть смесь типов, но если все они рассматриваются как текстовые столбцы на стороне Slick, это было бы хорошо со мной.