Я хотел бы перевести SQL-запрос в TableQuery
:
SELECT ..., TRIM(LEADING '0' FROM mycolumn) FROM mytable WHERE TRIM(LEADING '0' FROM mycolumn) = '$key
Должно стать MyTableQuery.filter(<_.mycolumn something something> )
Я не могу использовать implicit MappedColumnType
, потому что я сопоставляю String
с String
и в результате есть другие столбцы String
. И я понятия не имею, как я буду использовать его как в SELECT
, так и в WHERE
.
Для части SELECT
я создал пользовательскую функцию для сопоставления кортежей результатов с моим классом case, поэтому мне нужно решение только для части WHERE
.
Прочитаны Исходя из SQL и Определяемые пользователем функции из документации, но, к сожалению, я ничего не понимаю. Я полагаю, что мог бы использовать SimpleFunction.unary[String, String]
, но не понял, как это сделать.
Обычный String
я бы обрезал dropLeft
, однако у Rep[String]
такого метода нет. ltrim
не принимает параметр. endsWith
неоднозначно в моем случае.
Я не могу дополнить свой запрос String
, так как не все значения в БД дополняются и имеют разную длину.
Я определенно могу использовать простой SQL и отображать результаты, но мне бы очень хотелось понять, чего мне здесь не хватает.
Я использую Slick 3.1.1.