如何将数组传递给巧妙的SQL纯查询? [英] How to pass an array to a slick SQL plain query?

查看:0
本文介绍了如何将数组传递给巧妙的SQL纯查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将数组传递给巧妙的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])

推荐答案

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

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"..."字符串时该字符串在作用域内。

这篇关于如何将数组传递给巧妙的SQL纯查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆