以下のコードは、示されているようにコンパイルされ、正常に動作します。ただし、Some("SomeConstant") を生成しようとすると、以下に示す実行時エラーが発生します。
これはなぜですか?クエリから式 (たとえば、Some(...)) を返すにはどうすればよいですか?
def cannotUnpack(db: Database) {
db.withSession {
val data = (for {
rw1 <- TableOne
rw2 <- TableTwo if rw1.cl1 === rw2.cl1 && rw1.cl2 === rw2.cl2 && rw1.cl1 === "0"
now = new Timestamp(System.currentTimeMillis())
six = 6
} yield (uuid, rw1.cl3, "SomeConstant", six, now) ).list // Works
// } yield (uuid, rw1.cl3, Some("SomeConstant"), six, now) ).list // Runtime error
}
}
実行時エラー: 展開方法がわからない (String, scala.slick.lifted.Column[Option[String]], Some[String], scala.slick.lifted.Column[Int], scala.slick.lifted.Column [java.sql.Timestamp]) を T に、G にパックします
rw2 <- TableTwo if rw1.cl1 === rw2.cl1 && rw1.cl2 === rw2.cl2 && rw1.cl1 === "0"
^
環境: Ubuntu 上の scala 2.10、Java 7 Slick 1.0.0、SQL Server、JTDS ドライバー