加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

database – 如何在scala slick 3中实现枚举?

发布时间:2020-12-16 19:19:12 所属栏目:安全 来源:网络整理
导读:这个问题已被提出并回答了光滑的1和2,但答案似乎对光滑3无效. 试图在How to use Enums in Scala Slick?中使用该模式, object MyEnumMapper { val string_enum_mapping:Map[String,MyEnum] = Map( "a" - MyEnumA,"b" - MyEnumB,"c" - MyEnumC ) val enum_stri
这个问题已被提出并回答了光滑的1和2,但答案似乎对光滑3无效.

试图在How to use Enums in 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)
  )
}

但是,由于光滑1,MappedTypeMapper尚未可用,并且对于光滑2的建议MappedColumnType不再可用,尽管记录为here.

最新的最佳做法是什么?

解决方法

MappedColumnType到底是什么意思不再可用?它带有通常导入的驱动程序.使用MappedColumnType将枚举映射到字符串,反之亦然:

object MyEnum extends Enumeration {
  type MyEnum = Value
  val A = Value("a")
  val B = Value("b")
  val C = Value("c")
}

implicit val myEnumMapper = MappedColumnType.base[MyEnum,String](
  e => e.toString,s => MyEnum.withName(s)
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读