简体   繁体   中英

Type Mistmatch Scala Slick Query

I am having trouble to get username and password using slick in scala like basically similar to something like

var query = "SELECT * FROM  \"default\".users as A " + "WHERE " + " A.username LIKE \'" + email + "\' " + "AND" + " A.password LIKE \'" + password + "\' ";

Here is my case class for schema

  case class User(
                       id: Long = 0L,
                       username: String,
                       password: String,

                       author_id:Long,
                       created_on: DateTime,
                       updated_by: Long,
                       updated_on:Option[DateTime]
                     )

  class UserTable(tag:Tag) extends Table[User](tag,"user"){
    override def * = (id,username,password,author_id,created_on,updated_by,updated_on.?) <> (User.tupled,User.unapply)

    def id = column[Long]("id",O.PrimaryKey,O.AutoInc)

    def username = column[String]("username")

    def password = column[String]("password")

    def created_on = column[DateTime]("created_on")

    def updated_on = column[DateTime]("dateupdated")

    def author_id = column[Long]("author_id")

    def updated_by = column[Long]("updated_by")
  }

 lazy  val UserTable = TableQuery[UserTable]

Below is my Query

val users = Main.UserTable.filter(_.username == email)
      .filter(_.password  == password).take(1)
filter(_.username == email)

You probably meant === instead of == .

That is part of the Slick DSL to build query expressions (and they could not call it == because Scala's equality comparator cannot be replaced).

Warning : Most operators mimic the plain Scala equivalents, but you have to use === instead of == for comparing two values for equality and =.= instead of,= for inequality. This is necessary because these operators are already defined (with unsuitable types and semantics) on the base type Any, so they cannot be replaced by extension methods.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM