MYSQL регистрозависимый поиск (с использованием hibernate) для utf8 - PullRequest
2 голосов
/ 10 августа 2009

У меня есть таблица логинов, в которой есть кодировка utf8 и сортировка utf8, когда я хочу проверить имя пользователя и получить другую информацию для этого конкретного имени пользователя, запрос hql дает мне тот же результат со строчными и прописными буквами. что я должен сделать для моего запроса HQL, что рабочий случай sesitive Я использую Mysql 5 и Java Hibernarte

это мой запрос:

return queryManager.executeQueryUniqueResult("select b.login from BranchEntity b where b.userName = ?", username);

Ответы [ 2 ]

5 голосов
/ 10 августа 2009

Самый простой способ - изменить определение столбца, чтобы использовать сортировку без учета регистра, например utf8_bin.

Подробности здесь

2 голосов
/ 25 ноября 2012

Добавить класс

public class CollateDialect extends MySQLDialect {
    @Override
    public String getTableTypeString() {
        return " COLLATE utf8_bin";
    }
}

и используйте его:

cfg.setProperty("hibernate.dialect", "org.kriyak.hbm.CollateDialect");

это сделает все запросы чувствительными к регистру, что придает гораздо больший смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...