2

ユーザー名を確認し、この特定のユーザー名の他の情報を取得したいときに、utf8文字セットとutf8照合を含むログインテーブルがあります。hqlクエリでは、小文字と大文字で同じ結果が得られます。Mysql5とjavahibernarteを使用する場合に対応するHQLクエリに対して何をすべきか

これは私の質問です:

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

2 に答える 2

6

最も簡単な方法は、のような大文字と小文字を区別しない照合を使用するように列の定義を変更することutf8_binです。

詳細はこちら

于 2009-08-10T17:06:07.403 に答える
2

クラスを追加

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

そしてそれを使用します:

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

これにより、すべてのクエリで大文字と小文字が区別され、意味が大きくなります。

于 2012-11-25T13:50:23.437 に答える