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
相关产品推荐
相关产品推荐

