[RuntimeException: SqlMappingError(No rows when expecting a



是否有一种方法可以让Scala Anorm处理空行结果?

我只是得到这个错误:[RuntimeException: SqlMappingError(No rows when expected a single)]

我的方法:

def findByEmail(email: String): User = {
      DB.withConnection { implicit connection=>
        SQL("SELECT * FROM users WHERE email = {email}").on(
          'email  -> email
          ).as(User.simple.single)
      }
}

你差不多就完成了,不需要使用单字符和奇怪的大小写匹配。只需这样做:

def findByEmail(email: String): Option[User] = {
  DB.withConnection { implicit connection=>
    SQL("SELECT * FROM users WHERE email = {email}").on(
      'email  -> email
      ).as(User.simple.singleOpt)
  }
}

如果有人遇到这个错误,我是这样解决的:

   def findByEmail(email: String): User = {
        DB.withConnection { implicit connection=>
          val query = SQL("SELECT * FROM users WHERE email = {email}").on(
            'email  -> email
          )
          simple.single(query()) match {
              case Success(user) => user
              case Error(e) => null
          }
        }
    }

你可以将大小写设置为

最新更新