Как написать/использовать экстрактор анормов, например rowToStringSequence Column[Seq[String]]

я написал этот преобразователь строк.

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. Например:

case class profile ( eyeColor: Seq[String] )

Объект-компаньон профиля:

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

Сообщение об ошибке компиляции: не удалось найти неявное значение для экстрактора параметров: anorm.Column[Seq[String]]

Мне нужна подсказка.

Спасибо!!


person OliverKK    schedule 11.09.2013    source источник


Ответы (1)


anorm.Column предназначен для преобразования данных JDBC в желаемый тип Scala. Итак, первый вопрос заключается в том, какой тип JDBC вы хотите преобразовать как Seq[String] (сам по себе не являющийся типом JDBC).

person cchantep    schedule 11.01.2014