这个问题已经在slick 1和2中得到了解答,但是这些答案似乎对于slick 3无效。
尝试使用如何在Scala Slick中使用枚举?中的模式,
object MyEnumMapper {
val string_enum_mapping:Map[String,MyEnum] = Map(
"a" -> MyEnumA,
"b" -> MyEnumB,
"c" -> MyEnumC
)
val enum_string_mapping:Map[MyEnum,String] = string_enum_mapping.map(_.swap)
implicit val myEnumStringMapper = MappedTypeMapper.base[MyEnum,String](
e => enum_string_mapping(e),
s => string_enum_mapping(s)
)
}
但是自Slick 1以来,MappedTypeMapper
就不再可用了,虽然在文档中有记录,但是在Slick 2中建议使用的MappedColumnType
也已经不再可用。
那么现在有什么最佳实践呢?
MappedColumnType
仍然可用,我在 slick 3.0 中经常使用它。 - Krever