Ваше определение getFile
вручную создает Array
, и, в частности, вы запрашиваете Array[File]
. Нет GetResult[File]
, означающего, что r.<<
не сможет преобразовать значение столбца в File
.
Может кто-нибудь сказать мне, как решить эту проблему?
Вам по крайней мере понадобится GetResult[File]
, определенный.
Однако из вопроса о том, как должна работать часть JSON, неясно:
Возможно, у вас есть столбец, содержащий текст, который ваше приложение рассматривает как JSON. Если это так, я предлагаю сделать JSON преобразование массива вне вашего слоя кода Slick. Это обеспечит прямое сопоставление с базой данных и из нее.
Или, возможно, у вас есть тип JSON в вашей базе данных, и вы используете операции с базой данных c. В этом случае, я думаю, это будет зависеть от того, какой у вас там контроль, и, вероятно, имеет смысл попытаться выполнить операции JSON -array на слое Slick. (Это относится к Postgress, например, через библиотеку pg-slick )
Но это другой вопрос.
В целом обратите внимание, я предлагаю всегда четко указывать типы GetResult
, которые вы определяете:
implicit lazy val getFile: GetResult[Array[File]]=
GetResult(r => Array[File](r.<<))
implicit lazy val SenObj: GetResult[Sen] =
GetResult(r => Sen(getFile(r)))
..., чтобы иметь представление о доступных экземплярах. Я считаю, что это помогает в отладке этих ситуаций.