如何将数组传递给光滑的SQL普通查询?

问题描述 投票:0回答:1

如何将数组传递给光滑的SQL普通查询?我尝试如下,但失败了:

// "com.typesafe.slick" %% "slick" % "3.3.2",  // latest version
val ids = Array(1, 2, 3)
db.run(sql"""select name from person where id in ($ids)""".as[String])

Error: could not find implicit value for parameter e: slick.jdbc.SetParameter[Array[Int]]

但是这张票似乎说它应该起作用:https://github.com/tminglei/slick-pg/issues/131

注意:我对以下方法不感兴趣:

db.run(sql"""select name from person where id in #${ids.mkString("(", ",", ")")}""".as[Int])
scala slick
1个回答
0
投票

您链接的问题指向添加了此内容的提交:

def mkArraySetParameter[T: ClassTag](/* ... */): SetParameter[Seq[T]]
def mkArrayOptionSetParameter[T: ClassTag](/* ... */): SetParameter[Option[Seq[T]]]

请注意,它们不是implicit

您需要执行类似操作

implicit val setIntArray: SetParameter[Array[Int]] = mkArraySetParameter[Int](...)

并且在尝试构造sql"..."字符串时,请确保在范围内。

© www.soinside.com 2019 - 2024. All rights reserved.