Hitachi

JP1 Version 11 JP1/Operations Analytics REST APIリファレンス


1.2.9 HQL規格の使用

HQLは,$queryやサポートする演算子などのクエリパラメータを使用して,コレクション(データ)のフィルタリングができるクエリ言語です。

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」は,その式が文字列表現,数値表現,真理値表現のどれであるかを表示します。また,これはリソースに定義されているメンバーの実際のデータ型とは異なります。例えば「ISO8601String」型の場合,ISO8601の文字列式として扱われるため,「string-expression」として表示されます。

データ型と表現形式との関係を次の表に示します。

表1‒8 データ型と表現形式との関係

型名

Expression

int/long/float

number-expression

enum

string-expression

String

string-expression

ISO8601String

string-expression

URLString

string-expression

boolean

boolean-expression

HQLでサポートする演算子を,優先される順に次の表に示します。

表1‒9 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

likes

含まれる。

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

注※ 大文字と小文字は区別されません。

使用例

URLエンコード前

...?$query=instanceID in [1000,1001,1002] and status eq 'Warning'

URLエンコード後

...?$query=instanceID%20in%20%5b1000%2c1001%2c1002%5d%20and%20status%20eq%20%27Warning%27