Anorm 2.3多值参数:必需的anorm.NamedParameter

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

在游戏框架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现在支持多值参数,我开始使用...

scala anorm playframework-2.3
1个回答
0
投票

查看Anorm文档,您将看到没有使用List的多值示例。确实,这是故意的,因为NamedParameter的实例仅针对Seq[T]实现。

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