Hitachi

JP1 Version 12 JP1/Automatic Operation コマンド・API リファレンス 


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

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

表2‒17 データ型と表現形式との関係

データ型

表現形式

integer/long

number-expression

enum

string-expression

string

string-expression

ISO8601String

string-expression

URLString

string-expression

boolean

boolean-expression

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

表2‒18 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

注※

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

使用例

指定した列のフィルタリングをする例を次に示します。URLとして表現できない文字列を値に指定したい場合は,UTF-8形式でURLエンコードしてください。

URLエンコード前

...?HQL::filter=instanceID in [1000,1001,1002] and status = 'running'

URLエンコード後

...?HQL::filter=instanceID%20in%20%5b1000%2c1001%2c1002%5d%20and%20status%20%3d%20%27running%27