将squeryl查询强制转换为case类scala
我是Squiryl的新手,试图弄清楚如何将查询返回的结果转换到case类中。我有类似的东西将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
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))
非常感谢。这正是我要找的!