找到一个用户匹配用户名的正确方法是什么?
使用用户定义的类型User:
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。
所需要的是让数据库作为查询的一部分进行字符串不敏感的比较。
答案 0 :(得分:19)
我有类似的情况并使用toLowerCase
扩展方法解决了这个问题:
p <- u.party if p.loginName.toLowerCase === partyName.toLowerCase
您可以找到here个更多扩展方法,尤其是String ones。