Как я могу сопоставить строку с классом с помощью Anorm?

У меня есть класс User :

case class User (id: Int, name: String)

И я хотел бы сопоставить строки из запроса, используя Anorm Stream API . Я пробовал использовать этот код:

val selectUsers = SQL("SELECT id, name FROM users")
val users = selectUsers().map(
    user => User(0, user.name)
).toList

Но я получаю сообщение об ошибке:

Error raised is : value name is not a member of play.db.anorm.SqlRow

на

user => User(0, user.↓name)

Как я могу сопоставить SqlRow классу?


] Как было предложено Рикардо, я попробовал:

object User extends Magic[User]

val users: List[User] = SQL("SELECT * FROM users").as(User*)

Но с этим кодом я получил RuntimeException: ColumnNotFound (User.id) on:

val users: List[User] = SQL("SELECT * FROM users").as(User*)

Есть предложения? Предполагаю, что у меня ] Объект User в строке прямо перед? И у меня все еще есть класс случая User .

5
задан Jonas 3 June 2011 в 18:44
поделиться