HQLにはilike
同等の機能はありません。コンスタンチンは既にsuggestionで指摘しているように、このJIRAで説明されているように、にcollation〜TERRITORY_BASED:SECONDARY
と設定することをお勧めします。DERBY-1748: Global case insensitive setting
すべての等価(=
)とlike
は大文字と小文字を区別しないことに注意してください。これは少し遠すぎて、あなたの特定の状況に適していない可能性があります。
これに対処するもう1つの方法は、関数ベースのインデックスを作成することです(Derbyがそれらをサポートしている場合はもちろんです)。like
とlower
をこのように結合するようにHQLを調整します。
Query q = session.createQuery("... WHERE lower(entity.field) like ?)");
q.setString(0, '%' + variable.toLowerCase() + '%');
ダービーは、FBIの(私はそれはないと思います)をサポートしていない場合は、低い値とインデックス、それらをして、トリガー充填カラムを作成することができます。
UPDATE他のJIRA:JIRA-481: implement SQL generated columnsで説明されているように、派生/自動生成列を定義することは可能であるようです。
簡単な回避策は、大文字(または小文字)への両方の単語を変換することです
**あなたがDerbyデータベースでHQLを動作させないように言っていますか? – ManuPK
のように*は機能しますが、大文字と小文字を区別する – gotch4