Как я могу создать пользовательский тип столбца с помощью Typesafe Slick в Scala?
У меня есть таблица PostgreSQL сenum
, который создается:
CREATE TYPE file_status AS ENUM ('new', 'uploading', 'queued', 'processing', 'done', 'failed');
и соответствующее поле
CREATE TABLE files ( ...
status file_status NOT NULL,
...
);
С Scala 2.10 и Typesafe Slick 1.0.1 ямы создали сопоставления для моей таблицы файлов, которые отлично работают, за исключениемstatus
поле, которое требует пользовательскогоfile_status
тип, строка.
def status = column[FileStatus]("status")
играл с сликомs TypeMapper, но можетЯ не могу понять, как заставить его работать:
sealed trait FileStatus
implicit val fileStatusMapper: TypeMapper[String] = base[FileStatus, String](
s => s.toString,
f => f(FileStatus)
)
Я получаю ошибку:несоответствие типов; найдено: models.Files.FileStatus.type требуется: Int
Почему требуется Int? Это из-за TypeMapper? Я также пытался
...
f => f.toString
// type mismatch; found : String required: models.Files.FileStatus
f => f
// type mismatch; found : String required: models.Files.FileStatus
Спасибо за любые подсказки, помогающие мне понять это отображение.