繁体   English   中英

我可以使用Sclick List和Slick(Play)吗?

[英]Can I use Scala List with Slick (Play)?

我正试图在这里存储一个整数列表是我正在做的事情:

模型

case class Score(
  scoresPerTime: List[Int]
)

object Scores extends Table[Score]("SCORES"){
   def scorePerTime = column[List[Int]]("SCORE_PER_TIME")
   //...more code
}

调节器

val form = Form(
  Map(
    "scoresPerTime" -> list(number)
  )(Score.apply)(Score.unapply)
)

我收到一个编译错误

.... could not find implicit value for parameter tm: scala.slick.lifted.TypeMapper[List[Int]][error]   def scorePerTime = column[List[Int]]("SCORE_PER_TIME")

如何解决此问题以输入列表? 或者尝试其他选项,如元组,枚举......

你可以通过定义类型映射器来实现,比如说List [Int]到String,反之亦然。

一种可能性:

implicit def date2dateTime = MappedTypeMapper.base[List[Int], String](
  list => list mkString ",",
  str => (str split "," map Integer.parseInt).toList
)

我说这是一种可能性,因为我没有测试过。 不确定它返回列表的事实会破坏Slick。 一个可能含糊不清的地方是聚合查询,你需要计算数量,而不是count(field) (显然是一个)。

但这完全是非关系。 关系方式是有一个包含两个字段的新表,一个外键引用表SCORES一行,另一个字段SCORE_PER_TIME一个SCORE_PER_TIME 外键应该是非唯一索引,因此搜索速度很快。 光滑处理这个很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM