Edited at

HibernateのOrder Byを日本語順でソートする。

More than 5 years have passed since last update.

Hibernateを使って、Oracleで日本語順でソートしたかったので調べてみた。


NLSSORT関数を使用する。

HQL的には下記のように書くと良い。

    public List<Cat> findOrderByJapanese() {

String query = "from Cat cat"
+ " where cat.typeName = 'mikeneko'"
+ " order by nlssort(cat.name, 'NLS_SORT=JAPANESE')"; // 日本語順でソートする。

return (List<cat>) getHibernateTemplate().find(query);
}

以上

参考サイト

Oracle Database グローバリゼーション・サポート・ガイド「5 言語ソートと文字列検索」

Hibernate oracle text field in alphabetical order