Jon*_*nas 5 scala map stream playframework anorm
我有一节课User:
case class User (id: Int, name: String)
Run Code Online (Sandbox Code Playgroud)
我想使用Anorm Stream API映射查询中的行.我尝试过这段代码:
val selectUsers = SQL("SELECT id, name FROM users")
val users = selectUsers().map(
user => User(0, user.name)
).toList
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
Error raised is : value name is not a member of play.db.anorm.SqlRow
Run Code Online (Sandbox Code Playgroud)
上
user => User(0, user.?name)
Run Code Online (Sandbox Code Playgroud)
我怎样才能将它映射SqlRow到一个类?
正如里卡多所说,我试过:
object User extends Magic[User]
val users: List[User] = SQL("SELECT * FROM users").as(User*)
Run Code Online (Sandbox Code Playgroud)
但是通过这段代码,我得到了一个RuntimeException occured : ColumnNotFound(User.id):
val users: List[User] = SQL("SELECT * FROM users").as(User*)
Run Code Online (Sandbox Code Playgroud)
有什么建议?我是否想要让User对象在线之前?我还有我的case class User.
我用这个工作了:
val selectUsers = SQL("SELECT id, name FROM users")
val users = selectUsers().map(
user => new User(user[Int]("id"), user[String]("name"))
).toList
Run Code Online (Sandbox Code Playgroud)
每一行user都是一本字典。我不太了解 Scala 语法。