UTF8のための(休止状態を使用して)MYSQLの大文字と小文字を区別検索
-
12-09-2019 - |
質問
私は私の小文字と大文字と同じ結果を与える私は、ユーザー名を確認し、この特定のユーザー名にHQLクエリを他の情報を取得したいとき、UTF8文字セットとUTF8照合を持つ表をログインしています。 lはケースのsesitiveを働く私のHQLクエリーのために何をすべき 私は、MySQL 5を使用してJavaのhibernarte
これが私のクエリです:
return queryManager.executeQueryUniqueResult("select b.login from BranchEntity b where b.userName = ?", username);
解決
最も簡単な方法は、utf8_bin
のような大文字と小文字を区別しない照合を使用するように、列の定義を変更することがあります。
詳細ですここを
他のヒント
クラスを追加します。
public class CollateDialect extends MySQLDialect {
@Override
public String getTableTypeString() {
return " COLLATE utf8_bin";
}
}
と、それを使用します:
cfg.setProperty("hibernate.dialect", "org.kriyak.hbm.CollateDialect");
このすべてのクエリの大文字と小文字を区別はるかにローミングサービスを作るようになります。
所属していません StackOverflow