使用Scala anorm流API检索元组列表
当我在剧中读书时!docs我找到了一种方法将结果解析为列表[(String,String)] 像这样:使用Scala anorm流API检索元组列表,scala,playframework,tuples,scala-collections,Scala,Playframework,Tuples,Scala Collections,当我在剧中读书时!docs我找到了一种方法将结果解析为列表[(String,String)] 像这样: // Create an SQL query val selectCountries = SQL("Select * from Country") // Transform the resulting Stream[Row] as a List[(String,String)] val countries = selectCountries().map(row => row[Stri
// Create an SQL query
val selectCountries = SQL("Select * from Country")
// Transform the resulting Stream[Row] as a List[(String,String)]
val countries = selectCountries().map(row =>
row[String]("code") -> row[String]("name")
).toList
我想这样做,但我的元组将包含更多数据
我是这样做的:
val getObjects = SQL("SELECT a, b, c, d, e, f, g FROM table")
val objects = getObjects().map(row =>
row[Long]("a") -> row[Long]("b") -> row[Long]("c") -> row[String]("d") -> row[Long]("e") -> row[Long]("f") -> row[String]("g")).toList
我得到的每个元组都将采用这种格式,当然,这就是我在上面代码中要求的:
((((((Long, Long), Long), String), Long), Long), String)
但我想要这个:
(Long, Long, Long, String, Long, Long, String)
我要问的是,我应该如何解析结果以生成类似上面最后一个元组的元组。我想像他们在文档中那样列出[(字符串,字符串)],但要有更多的数据
谢谢您得到的是(((((((((((((((((((((((Long,Long))Long),String),Long),Long),String)
因为->
,对此的每次调用都将两个元素包装成一对。因此,每个->
都有一个元组,然后取下这个元组并创建一个新元组,等等。您需要用逗号更改箭头并将其换行为()
:
但请记住,当前元组中最多只能包含22个元素 我知道
->
就是这样的,我试着用,
来代替,但运气不好。但是我现在看到你添加了(
和)
,而我没有。我马上就去试试!谢谢@Alexlv,我错过了(
和)
。错过这么一件小事感觉很傻。
val objects = getObjects().map(row =>
(row[Long]("a"), row[Long]("b"), ..., row[String]("g")).toList