为什么它使用slick和playframework返回0条记录

为什么它使用slick和playframework返回0条记录,playframework,playframework-2.0,playframework-2.2,playframework-2.3,slick-2.0,Playframework,Playframework 2.0,Playframework 2.2,Playframework 2.3,Slick 2.0,数据库中有一个用户表。但是,当我在playframework中使用以下scala代码时,它返回0条记录 case class User(id: Option[Int], username: String, email: String, password: String, role: String) class Users(tag: Tag) extends Table[User](tag, "users") { def id = column[Int]("id", O.PrimaryKey

数据库中有一个用户表。但是,当我在playframework中使用以下scala代码时,它返回0条记录

case class User(id: Option[Int], username: String, email: String,
password: String, role: String)

class Users(tag: Tag) extends Table[User](tag, "users") {
  def id = column[Int]("id", O.PrimaryKey, O.AutoInc, O.NotNull)
  def username = column[String]("username", O.NotNull)
  def email = column[String]("email", O.NotNull)
  def password = column[String]("password", O.NotNull)
  def role = column[String]("role", O.NotNull)
  def * = (id.?, username, email, password, role) <> (User.tupled, User.unapply _)
}

object Users {
  val users = TableQuery[Users]

  def findByUsernameAndPassword(username: String, encryptedPassword: String)(implicit session: Session): Option[User] = {
      users.where(_.username === "user1@localhost").firstOption
}

当我直接在数据库中运行sql时,它会正确返回用户记录。

请尝试
users.filter(u.username==)user1@localhostfirstOption
它也不起作用。用户本身是空的。你在使用Play Slick插件吗?您使用的是哪一版本的Slick and Play?根据您使用的版本,您必须首先在您的模型或控制器中插入
数据库
数据库配置
。您是否可以尝试在不过滤的情况下获取所有用户,看看您是否真的与之有正确的连接?slick 0.6?天哪,你想至少升级到2.x版吗?
select x2."id", x2."username", x2."email", x2."password", x2."role" from "users" x2 where x2."username" = 'user1@localhost'