2016-04-06 8 views
0

私はいくつかのケースクラスにSlickでマップされた複数の列を持つテーブルを持っています。私は別のタイプのクエリとして利用可能な列のいくつかのサブセットを使用したいと思います。 例:滑らかな同じテーブルの複数の表現

case class NodeRow(id: Long, scheduled: Int, current: Option[Int]) 
case class OtherModel(id: Long, current: Option[Int]) 
class Node(_tableTag: Tag) extends Table[NodeRow](_tableTag, Some("masterdata"), "node") { 
def * = (id, scheduledFirmwareVersion, currentFirmwareVersion) <>(NodeRow.apply, NodeRow.unapply) 

val id: Rep[Long] = column[Long]("id", O.AutoInc, O.PrimaryKey) 
val scheduledFirmwareVersion: Rep[Int] = column[Int]("scheduled_firmware_version", O.Default(1)) 
// Note - in this example number of columns is reduced 
val currentFirmwareVersion: Rep[Option[Int]] = column[Option[Int]]("current_firmware_version", O.Default(None) 
} 
lazy val Node = new TableQuery(tag => new Node(tag)) 

私はNodeRowのインスタンスを選択するために、 'ノード' を使用することができます。しかし、「OtherModel」クラスを構築するのに2つの列だけを選択したいのですが?私は、必要な列だけを選択してタプルからケースクラスに変換するために結果をマップするために「マップ」を使用することができますが、そのようなユースケース(更新を含む)のネイティブサポートがあるかどうかを知りたいと思います。おかげさまで

答えて

1

は、私はあなたが同じdbテーブル、マッピングは明らかだっただけで必要な列

+0

時に別のスリック表を定義することができると思います。ありがとうございました :) –