相关疑难解决方法(0)

如何在浮油中保持枚举值

我有以下枚举:

object LoginStatus extends Enumeration() with BitmaskedEnumeration {
  type LoginStatus = Value
  val Active = Value("A")
  val Inactive = Value("I")
}
Run Code Online (Sandbox Code Playgroud)

我需要保持枚举"A"的值,但是当生成sql时,结果为0.这是表映射:

object LoginTable extends Table[Login]("login") {
  def idLogin = column[Int]("idlogin", O.PrimaryKey, O.AutoInc)
  def cdLogin = column[String]("cdlogin", O.NotNull)
  def cdPass = column[String]("cdPass", O.NotNull)
  def stLogin = column[LoginStatus]("stlogin", O.NotNull, O.DBType("character(1)"))
}
Run Code Online (Sandbox Code Playgroud)

如何持久化枚举值?

我实施了

implicit val charMapper = MappedTypeMapper.base[Char, String](
    b => b.toString(),
    i => i.charAt(0))

  implicit def enum2StringMapper(enum: Enumeration) = MappedTypeMapper.base[enum.Value, Char](
    b => b.toString.charAt(0),
    i => enum.withName(i.toString))

  implicit val LoginStatusMapper …
Run Code Online (Sandbox Code Playgroud)

scala slick

24
推荐指数
1
解决办法
5529
查看次数

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

这个问题已被提出并回答了光滑的1和2,但答案似乎对光滑3无效.

试图在Scala Slick如何使用Enums中的模式,

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)
  )
}
Run Code Online (Sandbox Code Playgroud)

但是MappedTypeMapper从光滑1开始就没有可用,并且MappedColumnType光滑2 的建议不再可用,尽管这里有记录.

最新的最佳做法是什么?

database enums scala slick

11
推荐指数
1
解决办法
4280
查看次数

标签 统计

scala ×2

slick ×2

database ×1

enums ×1