モデルで(検索可能な)ローカリゼーションを使用したいのですが、次のモデルを思いつきました。
@Entity
public class Category {
...
@ElementCollection
//key = language code (e.g. 'en') and value = localized label
private Map<String, String> name;
...
}
私がしたくないのは、特定のローカリゼーションで大文字と小文字を区別しない針を含むカテゴリをクエリすることです(たとえば、英語名に「%abc%」が含まれています)
私は次のようなことを試みました
from Category where name.key = :locale and lower(name.value) like :text
ただし、スカラーコレクション要素の例外を逆参照できないため失敗します。
今、休止状態のドキュメントは、値とキーにelements()とindexes()を使用する必要があると言っています。キーの場合、これは簡単に使用:locale in indices(name)
できますが、大文字と小文字を区別しない方法でこのロケールの値の一部を一致させるにはどうすればよいですか?
そして、これが私のモデルのhqlで実行できない場合に備えて、他にどのように検索可能なローカリゼーションをモデル化できますか?