You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala Skunk多参数查询编译报错:List[String]参数类型不匹配

编译错误原因及解决方法

错误根源

你声明的查询参数类型是(List[String], Int),但当前SQL模板里的$varchar仅对应单个String值,Skunk据此推导的参数类型是(String, Int),和你定义的ALL_BY_ID类型不匹配,导致编译失败。

解决方法

Skunk处理SQL的IN子句列表参数时,需要用$list(类型)语法明确绑定集合类型。修改SQL模板中的参数部分:

val ALL_BY_ID: Query[List[String] *: Int *: EmptyTuple, Store] =
  sql"""SELECT id, name, description, account, enterdate
      ,  company, modelid
       FROM   store
       WHERE id IN $list(varchar) AND modelid = $int4 
       """.query(storeDecoder)

补充说明

$list(varchar)会告诉Skunk该参数是List[String]类型,它会自动处理集合参数与IN子句的绑定逻辑,确保参数类型和你声明的一致。

内容的提问来源于stack exchange,提问作者Bate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 13:17:06