光を当てるようにしましょう:)。がある場合はResultSet
、結果セットを実際にマップするタイプが必要です。たとえば、行を保持するタプルまたはケース クラス。カスタム (ケース) クラスの場合implicit
GetResult
、jdbc からクラスにマップする方法を説明するを提供する必要がありResultSet
ます。への引数.list
は、準備されたステートメントのプレースホルダーに Slick に入れさせたい値である必要がありResultSet
ます rs
。
推奨される使用法は次のようなものです。
import scala.slick.jdbc.{GetResult, StaticQuery}
import StaticQuery.interpolation
val price = 1000.0
// use tuples
val expensiveDevices: List[Device] =
Q.query[String, (Long,Double,Date)]("select * from DEVICE where PRICE > ?").list( price )
// or a case class (needs implicit GetResult for Device)
case class Device(id: Long,price: Double,acquisition: Date)
implicit val getDeviceResult =
GetResult(r => Device(r.<<, r.<<, r.<<))
val expensiveDevices2: List[Device] =
Q.query[String, Device]("select * from DEVICE where PRICE > ?").list( price )
// or the even nicer interpolation syntax
val expensiveDevices3: List[Device] =
sql"select * from DEVICE where PRICE > $price" .as[Device].list