10

找到一个用户匹配用户名的正确方法是什么?

使用用户定义类型用户:

case class User (userId: String, username: String)

object User extends Table[User]("user") {
  def userId = column[String]("userId", O.PrimaryKey)
  def username = column[String]("username")
  def * = userId ~ authId ~ username <>(User.apply _, User.unapply _)

  Database.forDataSource(DB.getDataSource()) withSession {
    implicit session: Session =>

    val q = for { u <- User if u.username.equalsIgnoreCase(someUsername) }
      yield u
    q.headOption

user.username 是 Column[String] 类型,它没有转换为 String。

需要的是让数据库将字符串不敏感的比较作为查询的一部分。

4

1 回答 1

22

我有类似的情况并通过使用toLowerCase扩展方法解决了它:

p <- u.party if p.loginName.toLowerCase === partyName.toLowerCase

您可以在此处找到更多扩展方法,尤其是String 方法

于 2013-05-22T20:11:09.807 回答