For any comparison, {@link #getOperand2 operand2} always evaluates to ascalar value. In contrast, {@link #getOperand1 operand1} may evaluate toan array of values (for example, the value of a multi-valued property), in which case the comparison is separately performed for each element of the array, and the Comparison
constraint is satisfied as a whole if the comparison against any element of the array is satisfied.
If {@link #getOperand1 operand1} and {@link #getOperand2 operand2}evaluate to values of different property types, the value of {@link #getOperand2 operand2} is converted to the property type ofthe value of {@link #getOperand1 operand1}. If the type conversion fails, the query is invalid.
Certain operators may only be applied to values of certain property types. The following describes required operator support for each property type:
STRING
EqualTo
, NotEqualTo
, LessThan
, LessThanOrEqualTo
, GreaterThan
, GreaterThanOrEqualTo
, Like
BINARY
DATE
, LONG
, DOUBLE
, DECIMAL
EqualTo
, NotEqualTo
, LessThan
, LessThanOrEqualTo
, GreaterThan
, GreaterThanOrEqualTo
BOOLEAN
, NAME
, PATH
, REFERENCE
, WEAKREFERENCE
, URI
EqualTo
, NotEqualTo
If {@link #getOperator operator} is not supported for the property type of{@link #getOperand1 operand1}, the query is invalid.
If {@link #getOperand1 operand1} evaluates to null (for example, if theoperand evaluates the value of a property which does not exist), the constraint is not satisfied.
The EqualTo
operator is satisfied only if the value of {@link #getOperand1 operand1} equals the value of{@link #getOperand2 operand2}.
The NotEqualTo
operator is satisfied unless the value of {@link #getOperand1 operand1} equals the value of{@link #getOperand2 operand2}.
The LessThan
operator is satisfied only if the value of {@link #getOperand1 operand1} is ordered before the value of{@link #getOperand2 operand2}.
The LessThanOrEqualTo
operator is satisfied unless the value of {@link #getOperand1 operand1} is ordered after the value of{@link #getOperand2 operand2}.
The GreaterThan
operator is satisfied only if the value of {@link #getOperand1 operand1} is ordered after the value of{@link #getOperand2 operand2}.
The GreaterThanOrEqualTo
operator is satisfied unless the value of {@link #getOperand1 operand1} is ordered before the value of{@link #getOperand2 operand2}.
The Like
operator is satisfied only if the value of {@link #getOperand1 operand1} matches the pattern specified by thevalue of {@link #getOperand2 operand2}, where in the pattern:
%
" matches zero or more characters, and_
" (underscore) matches exactly one character, and\x
" matches the character "x
", and
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|