在游戏框架2.3上使用scala 2.11.1。
因为Anorm在以前的版本中不支持多值参数,所以我使用了David's解决方法。现在是Anormsupportsmulti-value parameters,我开始删除变通办法,并使用Anorm多值参数。
[example [原文]:
// With default formatting (", " as separator)
SQL("SELECT * FROM Test WHERE cat IN ({categories})").
on('categories -> Seq("a", "b", "c")
// -> SELECT * FROM Test WHERE cat IN ('a', 'b', 'c')
还我的代码:
val names = List("Able", "Baker", "Charlie") // Passed as a parameter to my method!
val result =
SQL( """
SELECT city
FROM addresses
WHERE name IN ({names});
""" ).on( 'names -> names ).as( scalar[String] * )
给我这个错误:
type mismatch;
found : (Symbol, List[String])
required: anorm.NamedParameter
或
type mismatch;
found : (Symbol, scala.collection.immutable.Seq[String])
required: anorm.NamedParameter
取决于我是否尝试列表或序列(或suggestions之一来映射它。]]
到目前为止,我还不是专家,我认为
它缺少一些隐式转换?无能为力地找出方式/方式/地点。欢迎使用提示/建议/解决方案!在游戏框架2.3上使用scala 2.11.1。因为Anorm在以前的版本中不支持多值参数,所以我使用了David的解决方法。 Anorm现在支持多值参数,我开始使用...
查看Anorm文档,您将看到没有使用List的多值示例。确实,这是故意的,因为NamedParameter
的实例仅针对Seq[T]
实现。