JPQL 中不区分大小写的用户名检查

Case insensitive username check in JPQL

我想在登录过程中创建不区分大小写的用户名检查。一个简单的 NamedQuery 返回用户实体通过测试:

SELECT u FROM User u WHERE u.userName LIKE :userName AND u.password = :password

但这不是我想要的喜欢。它比较 userNames 区分大小写。有人可以帮助我吗?

好的。我已经解决了!

命名查询:

SELECT u FROM UserWithRoles u WHERE LOWER( u.userName ) = :userName AND u.password = :password"

设置查询的bean代码:

q.setParameter( "userName", userName_.toLowerCase() );