gpt4 book ai didi

scala - 我可以在 Slick (Play) 中使用 Scala List 吗?

转载 作者:行者123 更新时间:2023-12-04 15:00:05 27 4
gpt4 key购买 nike

我正在尝试存储一个整数列表,这就是我正在做的事情:

型号

case class Score(
scoresPerTime: List[Int]
)

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

Controller
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 .外键应该是一个非唯一索引,以便快速搜索。并且 slick 处理得很好。

关于scala - 我可以在 Slick (Play) 中使用 Scala List 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623485/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com