如何编写/使用anorm Extractor,如rowToStringSequence Column [Seq [String]]

时间:2013-09-11 11:41:18

标签: database scala playframework-2.0 anorm extractor

我写了这个行转换器。

implicit def rowToStringSequence: Column[Seq[String]] = Column.nonNull { (value, meta) =>
    val MetaDataItem(qualified, nullable, clazz) = meta
    value match {
      case data: Seq[String] => Right(data)
      case _ => Left(TypeDoesNotMatch(
        "Cannot convert " + value + ":" + value.asInstanceOf[AnyRef].getClass +
        " to String Array for column " + qualified))
    }
  }

不幸的是,我不知道如何在案例类中使用它。 例如:

case class profile ( eyeColor: Seq[String] )

个人资料配套对象:

object Profile{
  val profile= {
      get[Seq[String]]("eyeColor") map {
        case
        eyeColor => Profile(eyeColor)
      }
   }
}

编译错误消息是: 找不到参数提取器的隐含值:anorm.Column [Seq [String]]

我需要一个提示。

谢谢!

1 个答案:

答案 0 :(得分:1)

anorm.Column用于将JDBC数据转换为所需的Scala类型。所以第一个问题是你要将哪种JDBC转换为Seq[String](本身不是JDBC类型)。