Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać wyliczeń w Scala Slick?

Problem z Enums rozwiązałem w następujący sposób (na przykładzie twoich wartości):

import play.api.db.slick.DB
import play.api.db.slick.Config.driver.simple._


sealed trait MyEnum
case object MyEnumA extends MyEnum
case object MyEnumB extends MyEnum
case object MyEnumC extends MyEnum

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)
  )
}

import MyEnumMapper._

case class MyData(
 ......
 enumValue: MyEnum,
 .....
)

................

object MyDataTable extends Table[MyData]("<table_name>") {
......
def enumValue = column[MyEnum]("<field_name>")
.....

.... /* whatever lifted or direct slick calls you want */ 

}

Jeśli działa u mnie w Play 2.1 i Play 2.2, Slick 1.0.0 i MariaDB 5.5 (tak samo jak MySQL)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF Core `update-database` w MySql kończy się niepowodzeniem z `__EFMigrationsHistory' nie istnieje`

  2. Znacznik czasu MySQL wybierz zakres dat

  3. SQLAlchemy i UnicodeDecodeError

  4. Mysql Wybierz różne rekordy tylko z ostatnich dat

  5. Jak naprawić kod stanu serwera:302 znaleziony przez dodatek SQL Inject Me Firefox