如何使用 sql""select c from T""".as[T] 插值在 slick 中执行动态查询
How to execute dynamic query with sql""select c from T""".as[T] interpolation in slick
我正在尝试使用 Slick3 实现一个函数 return 一个元组。
def executeQueryConfig2[T](sql: String, f : Option[T] => Unit): Future[T] = {
val action2 = sql"""$sql""".as[T].headOption
getDatabase(config).run(action2).mapTo[T].map(f(_)).recover{ case e: SQLException => println(e.getMessage) }
.......
}
编译器显示错误:
Error:(66, 35) could not find implicit value for parameter rconv: slick.jdbc.GetResult[T]
val action2 = sql"""$sql""".as[T].headOption
^
如果T是slick 3实现的类型中的类型,我怎么实现这样的功能?
示例:
executeQueryConfig2[Int]("SELECT C FROM T", f1(_))
谢谢。
您必须为您的类型提供 GetResult
函数 T
:
def executeQueryConfig2[T:ClassTag](sql: String, f: Option[T] => Unit)
(implicit rconv: GetResult[T]): Future[T] = {
val action2 = sql"""$sql""".as[T].headOption
顺便说一句,以下语句无法编译,因为您不能在 T
上调用 f
,只能在 Option[T]
.
上调用
db.run(action2).mapTo[T].map(f(_)).recover{ case e: SQLException => println(e.getMessage) }
}
我正在尝试使用 Slick3 实现一个函数 return 一个元组。
def executeQueryConfig2[T](sql: String, f : Option[T] => Unit): Future[T] = {
val action2 = sql"""$sql""".as[T].headOption
getDatabase(config).run(action2).mapTo[T].map(f(_)).recover{ case e: SQLException => println(e.getMessage) }
.......
}
编译器显示错误:
Error:(66, 35) could not find implicit value for parameter rconv: slick.jdbc.GetResult[T]
val action2 = sql"""$sql""".as[T].headOption
^
如果T是slick 3实现的类型中的类型,我怎么实现这样的功能?
示例:
executeQueryConfig2[Int]("SELECT C FROM T", f1(_))
谢谢。
您必须为您的类型提供 GetResult
函数 T
:
def executeQueryConfig2[T:ClassTag](sql: String, f: Option[T] => Unit)
(implicit rconv: GetResult[T]): Future[T] = {
val action2 = sql"""$sql""".as[T].headOption
顺便说一句,以下语句无法编译,因为您不能在 T
上调用 f
,只能在 Option[T]
.
db.run(action2).mapTo[T].map(f(_)).recover{ case e: SQLException => println(e.getMessage) }
}