UTF8のための(休止状態を使用して)MYSQLの大文字と小文字を区別検索

StackOverflow https://stackoverflow.com/questions/1256001

質問

私は私の小文字と大文字と同じ結果を与える私は、ユーザー名を確認し、この特定のユーザー名に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");

このすべてのクエリの大文字と小文字を区別はるかにローミングサービスを作るようになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top