case class User(name: String, age: Int)
def changeNameQuery(): Query[UserTable, User, Seq] = {
TableQuery[UserTable].map { user =>
(Case If (user.name === "A") Then "B" Else "A",
user.age
)
}
}
我收到此错误
[error] found : slick.lifted.Query[(slick.lifted.Rep[String], slick.lifted.Rep[Int]),(String, Int),Seq]
[error] required: repositories.postgres.PostgresProfile.api.Query[repositories.postgres.UserTable,model.User,Seq]
也许有某种方法可以从元组中获取表对象?
乍一看这似乎是打字问题。您说您将返回一个
Query[User Table, User, Seq]
,这意味着您将从用户表中返回用户列表。该错误表明您正在返回一个元组 (String,Int)
而不是 User
。
而不是做
(
Case If (user.name === "A") Then "B" Else "A",
user.age
)
您需要返回
User
或更改方法的返回类型。这取决于你需要什么
您是否考虑过使用 slick.jdbc.Database.run 方法? val db: 数据库 = Database.forConfig("myDatabase") .... db.run(analyticsActivityTableQuery += 值) 您可以检查并更新 value 的值。