2016-05-28 7 views
0

私はスカラーとスカラを使って3を使用しています。テーブル定義でIDをオブジェクトにどのように変換できますか?滑らかにオブジェクトに整数をマッピングする

JavaのEnumに似た値のリストがあり、データベースのIDがEnumに定義されているIDと一致している必要があります。これは、そのIDで参照されるデータベース内に別のテーブルを持つことと似ています。スリックで

object X extends Table[(Int, String)]("x") { 

    ... 
    def typeId   = column[Int]("type_id") 
    def type  = ... (AAA or BBB) // filled in by type_id 
    ... 

} 

答えて

0

あなたは再びあなたのオブジェクトにデータベース内のデータから(代わりに通常の適用を解除する場合クラスの/適用)と、独自の投影を定義することができます。また、文字列を使用して、データベースで型を定義することもできます。

object Xs extends Table[X]("X") { 
    def typeName = column[String]("TYPE_NAME") 
    def toX(from: (String)): X = from match { 
    case ("aaa") => AAA 
    case ("bbb") => BBB 
    } 
    def fromX(x: X): (String) = x match { 
    case AAA => ("aaa") 
    case BBB => ("bbb") 
    } 
    override def * = (typeId) <> (toX, fromX) 
} 
:次に、あなたのスリックマッピングは次のようになります

sealed trait X 
case class AAA() extends X 
case class BBB() extends X 

あなたのタイプは、次のようになります

関連する問題