当我想检查用户名并检索此特定用户名的其他信息时,我的登录表有utf8字符集和utf8排序规则,hql查询给出了与小写和大写相同的结果。 我应该为我的HQL查询做什么工作案例sesitive 我使用Mysql 5和java hibernarte
这是我的疑问:
return queryManager.executeQueryUniqueResult("select b.login from BranchEntity b where b.userName = ?", username);
答案 0 :(得分:5)
最简单的方法是将列的定义更改为使用不区分大小写的排序规则,例如utf8_bin
。
详情为here
答案 1 :(得分:2)
添加课程
public class CollateDialect extends MySQLDialect {
@Override
public String getTableTypeString() {
return " COLLATE utf8_bin";
}
}
并使用它:
cfg.setProperty("hibernate.dialect", "org.kriyak.hbm.CollateDialect");
这将使所有查询区分大小写,从而更加明确。