Hitachi

JP1 Version 12 JP1/Operations Analytics REST API Reference Guide


1.2.9 HQL syntax relationships and operators

HQL is a query language that can filter collections of data by using various query parameters, including $query and supported operators.

Use UTF-8 encoding and encode characters and symbols that cannot be expressed as a URL.

Syntax

To define a collection of a resource request, use the following expressions:

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 is an attribute defined in a resource.

value-expression displays a string expression, number expression, or Boolean expression. This value is different from the actual data type of the attribute defined in a resource. The "ISO8601String" type, for example, is dealt with as a string in ISO 8601 format. As a result, it displays as a string-expression.

The following table describes the relationship between the data types and expression formats:

Type

Expression

int/long/float

number-expression

enum

string-expression

String

string-expression

ISO8601String

string-expression

URLString

string-expression

boolean

boolean-expression

The following table lists and describes the operators supported by HQL in priority as indicated in the Priority column.

Operator

Description

Expression

Priority (1-3)

eq

Equal

number-expression,

string-expression (string, enum),

boolean-expression

1

ne

Not equal

number-expression,

string-expression (string, enum),

boolean-expression

1

gt

Greater than

number-expression,

string-expression (string, enum),

1

lt

Smaller than

number-expression,

string-expression (string, enum),

1

ge

Equal or greater than

number-expression,

string-expression (string, enum),

1

le

Equal or smaller than

number-expression,

string-expression (string, enum),

1

starts#

Start value

string-expression (string, excluding ISO8601String)

1

ends#

End value

string-expression (string, excluding ISO8601String)

1

likes#

Included

string-expression (string, excluding ISO8601String)

1

in

Included

number-expression,

string-expression (string, enum),

boolean-expression

1

not in

Not included

number-expression,

string-expression (string, enum),

boolean-expression

1

and

Both true

compare-expression, tuple-expression

2

or

Either of them true

compare-expression, tuple-expression

3

# The operator name is not case sensitive.

Example:

Before URL encoding:

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

After URL encoding:

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