2.2.11 HQL規格の使用
HQL::filterにHQL(Hitachi Query Language)を指定して,対象となるデータをフィルタリングできます。コレクションとは,フィルタリングの対象となるデータを指します。
URLとして表現できない記号や文字は,UTF-8形式でURLエンコードしてください。
形式
リソースリクエストのコレクションを定義するには,次に示す式を使用してください。
expression ::= "(" expression ")" | binary-expression | expression junction expression junction ::= ( "and" | "or" ) binary-expression ::= (compare-expression | tuple-expression) compare-expression ::= name-expression compare-operation value-expression name-expression ::= property-name | "[" property-name "]" compare-operation ::= ( "eq" | "=" | "ne" | "<>" | "!=" | "gt" | ">" | "lt" | "<" | "ge" |">=" | "le" |"<=" | "starts" | "ends" ) value-expression ::= ( string-expression | number-expression | boolean-expression ) string-expression ::= "'" ([^'] | [']{2})* "'" number-expression::= ( "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" )+ boolean-expression::= "true" | "false" |"TRUE" | "FALSE" tuple-expression ::= name-expression tuple-operation tuple-value-expression tuple-value-expression ::= "[" value-expression ("," value-expression)* "]" tuple-operation ::= ( "in" | "not in" )
「property-name」は,リソースに定義されているメンバー名です。
「value-expression」は,その式が文字列表現,数値表現,真理値表現のどれであるかを表示します。また,これはリソースに定義されているメンバーの実際のデータ型とは異なります。
データ型と表現形式との関係を次の表に示します。
データ型 |
表現形式 |
---|---|
integer/long |
number-expression |
enum |
string-expression |
string |
string-expression |
ISO8601String |
string-expression |
URLString |
string-expression |
boolean |
boolean-expression |
HQLでサポートする演算子を,優先される順に次の表に示します。
演算子 |
説明 |
指定できるデータ型 |
優先順位 |
---|---|---|---|
eq |
等しい。 |
number-expression,string-expression(string,enum), boolean-expression |
1 |
ne |
等しくない。 |
number-expression,string-expression(string,enum), boolean-expression |
1 |
gt |
より大きい。 |
number-expression,string-expression(string,enum) |
1 |
lt |
より小さい。 |
number-expression,string-expression(string,enum) |
1 |
ge |
以上。 |
number-expression,string-expression(string,enum) |
1 |
le |
以下。 |
number-expression,string-expression(string,enum) |
1 |
starts※ |
開始値。 |
string-expression(ISO8601Stringを除くstring) |
1 |
ends※ |
終了値。 |
string-expression(ISO8601Stringを除くstring) |
1 |
in |
含まれる。 |
number-expression,string-expression(string,enum), boolean-expression |
1 |
not in |
含まれない。 |
number-expression,string-expression(string,enum), boolean-expression |
1 |
and |
どちらもtrueである。 |
compare-expression,tuple-expression |
2 |
or |
どちらかがtrueである。 |
compare-expression,tuple-expression |
3 |
- 注※
大文字と小文字は区別されません。