我有一个 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,我创建了到我的 Files 表的映射,除了status
字段之外,它需要自定义file_status
类型,一个字符串。
def status = column[FileStatus]("status")
我一直在玩 Slick 的 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
感谢您提供任何帮助我理解此映射的指示。