Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将squeryl查询强制转换为case类scala_Scala_Casting_Squeryl - Fatal编程技术网

将squeryl查询强制转换为case类scala

将squeryl查询强制转换为case类scala,scala,casting,squeryl,Scala,Casting,Squeryl,我是Squiryl的新手,试图弄清楚如何将查询返回的结果转换到case类中。我有类似的东西 def getUsers = { val data = getUserData ... } def getUserData = { transaction { from(users)(s => select(s.id, s.firstName, s.lastName, s.userName, s.email, s.lastLoginD

我是Squiryl的新手,试图弄清楚如何将查询返回的结果转换到case类中。我有类似的东西

def getUsers = {
    val data = getUserData
    ...
}

def getUserData = {
    transaction {
        from(users)(s =>
            select(s.id, s.firstName, s.lastName, s.userName, s.email, s.lastLoginDate, s.dateJoined)
        )
    }
}

case class UserData(userId: Long, firstName: String, lastName: String, userName: String, email: String, lastLoginDate: Timestamp, dateJoined: Timestamp)

case class UserDataRecords(users: List[UserData])
理想情况下,我希望从UserDataRecords中获取数据。现在它作为查询[Tuple7]返回。比如

... 
(5,Suzie,Queue,squeue,SQueue@example.com,2014-01-15 22:02:12.0,2014-01-15 22:02:12.0)
...

我搞不懂的是如何转换这些数据。这方面的任何帮助都会很好

最简单的方法是使用
map
转换结果列表。下面的例子应该是一个起点:

def getUserData = {
    transaction {
        from(users)(s =>
            select(s.id, s.firstName, s.lastName, s.userName, s.email, s.lastLoginDate, s.dateJoined)
        ).toList.map { row =>
            UserData(row._1, row._2, row._3, row._4, row._5, row._6, row._7)
        }
    }
}
这将遍历每一行,并从元组中创建一个
UserData
对象,留给您
List[UserData]

也就是说,如果您的模式
users
属于
Table[UserData]
类型,那么您可以简单地执行以下操作:

from(users)(s => select(s))

非常感谢。这正是我要找的!