AttributeCondition defines the following operators.
Table 1–1 Attribute Condition Operators
Operator |
Description |
---|---|
EQ, EQUALS |
Object has at least one value for the specified attribute that is lexically equal to (ignoring case) the operand. |
NE, NOT_EQUALS |
Object has no value for the specified attribute that is lexically equal to (ignoring case) the operand. |
GT, GREATER_THAN |
Object has at least one value for the specified attribute that is lexically greater than (ignoring case) the operand. |
GE |
Object has at least one value for the specified attribute that is lexically greater than or equal to (ignoring case) the operand. |
LE |
Object has at least one value for the specified attribute that is lexically less than or equal to (ignoring case) the operand. |
LT, LESS_THAN |
Object has at least one value for the specified attribute that is lexically less than (ignoring case) the operand. |
STARTS_WITH |
Object has at least one value for the specified attribute that is an initial substring (ignoring case) of the operand. |
ENDS_WITH |
Object has at least one value for the specified attribute that is a final substring (ignoring case) of the operand. |
CONTAINS |
Object has at least one value for the specified attribute that is a substring (ignoring case) of the operand. |
IS_PRESENT |
Object has at least one value for the specified attribute. (This operator takes no operand.) |
NOT_PRESENT |
Object has no value for the specified attribute. (This operator takes no operand.) |
IN, IS_ONE_OF |
Object has at least one value for the specified attribute that is lexically equal to (ignoring case) one of the values in the (list) operand. |
RelationalDataStore optimizes evaluation by translating each attribute condition into an appropriate predicate that becomes part of the WHERE clause for the operation. However, no special logic is required to handle multi-valued attributes. RelationalDataStore automatically generates appropriate SQL DML to handle this.
An attribute condition applies to each value of an attribute. (Specifically, operator NE is true if, and only if, an object has no value for the specified attribute that equals the specified operand. Operator EQ is true if an object has at least one value for the specified attribute that matches the specified operand.)