gpt4 book ai didi

scala - 如何使用 Anorm 将 Row 映射到类?

转载 作者:行者123 更新时间:2023-12-04 17:40:03 25 4
gpt4 key购买 nike

我有一个类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 occured : ColumnNotFound(User.id)在:
val users: List[User] = SQL("SELECT * FROM users").as(User*)

有什么建议?我是否应该拥有 User对象就在前面?我还有我的 case class User .

最佳答案

您可以使用 Magic 助手,创建一个扩展 magic 的对象:

object User extends Magic[User]

然后 :
val users:List[User] = SQL("select * from User").as(User*)

有关更多信息,请参阅文档: Magic helper

关于scala - 如何使用 Anorm 将 Row 映射到类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6228197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com