EJB query: BNF syntax
EJB QL ::= [select_clause] from_clause [where_clause] [order_by_clause] DYNAMIC EJB QL :=select_clause_dynamic from_clause [where_clause] [group_by_clause] [having_clause] [order_by_clause]from_clause::=FROM identification_variable_declaration [,identification_variable_declaration]*identification_variable_declaration::=collection_member_declaration | range_variable_declarationcollection_member_declaration::= IN ( collection_valued_path_expression ) [AS] identifierrange_variable_declaration::=abstract_schema_name [AS] identifiersingle_valued_path_expression ::= {single_valued_navigation | identification_variable}. ( cmp_field | method | cmp_field.value_object_attribute | cmp_field.value_object_method ) | single_valued_navigationsingle_valued_navigation::= identification_variable.[ single_valued_cmr_field. ]* single_valued_cmr_fieldcollection_valued_path_expression ::= identification_variable.[ single_valued_cmr_field. ]* collection_valued_cmr_fieldselect_clause::= SELECT { ALL | DISTINCT } {single_valued_path_expression | identification_variable | OBJECT ( identification_variable) | aggregate_functions }select_clause_dynamic ::= SELECT { ALL | DISTINCT } [ selection , ]* selectionselection ::= { expression | subselect } [[AS] id ]order_by_clause::= ORDER BY [ {single_valued_path_expression | integer} [ASC|DESC],]* {single_valued_path_expression | integer}[ASC|DESC]where_clause::= WHERE conditional_expressionconditional_expression ::= conditional_term | conditional_expression OR conditional_termconditional_term ::= conditional_factor | conditional_term AND conditional_factorconditional_factor ::= [NOT] conditional_primaryconditional_primary::=simple_cond_expression | (conditional_expression)simple_cond_expression ::= comparison_expression | between_expression | like_expression | in_expression | null_comparison_expression | empty_collection_comparison_expression | quantified_expression | exists_expression | is_of_type_expression | collection_member_expressionbetween_expression ::= expression [NOT] BETWEEN expression AND expressionin_expression ::= single_valued_path_expression [NOT] IN { (subselect) | ( atom ,]* atom) }atom = { string-literal | numeric-constant | input-parameter }like_expression ::= expression [NOT] LIKE {string_literal | input_parameter} [ESCAPE {string_literal | input_parameter}]null_comparison_expression ::= single_valued_path_expression IS [ NOT ] NULLempty_collection_comparison_expression ::= collection_valued_path_expression IS [NOT] EMPTYcollection_member_expression ::= { single_valued_path_expression | input_paramter } [ NOT ] MEMBER [ OF ] collection_valued_path_expressionquantified_expression ::= expression comparison_operator {SOME | ANY | ALL} (subselect)exists_expression ::= EXISTS {collection_valued_path_expression | (subselect)}subselect ::= SELECT [{ ALL | DISTINCT }] expression from_clause [where_clause] [group_by_clause] [having_clause]group_by_clause::= GROUP BY [single_valued_path_expression,]* single_valued_path_expressionhaving_clause ::= HAVING conditional_expressionis_of_type_expression ::= identifier IS OF TYPE ([[ONLY] abstract_schema_name,]* [ONLY] abstract_schema_name)comparison_expression ::= expression comparison_operator { expression | ( subquery ) }comparison_operator ::= = | > | >= | < | <= | <>method ::= method_name( [[expression , ]* expression ] )expression ::= term | expression {+|-} termterm ::= factor | term {*|/} factorfactor ::= {+|-} primaryprimary ::= single_valued_path_expression | literal | ( expression ) | input_parameter | functions | aggregate_functionsaggregate_functions := AVG([ALL|DISTINCT] expression) | COUNT({[ALL|DISTINCT] expression |*| identification_variable }) | MAX([ALL|DISTINCT] expression) | MIN([ALL|DISTINCT] expression) | SUM([ALL|DISTINCT] expression) |functions ::= ABS(expression) | AVG([ALL|DISTINCT] expression) | BIGINT(expression) | CHAR({expression [,{ISO|USA|EUR|JIS}] ) | CONCAT (expression , expression ) | COUNT({[ALL|DISTINCT] expression | *}) | DATE(expression) | DAY({expression ) | DAYS( expression) | DECIMAL( expression [,integer[,integer]]) DIGITS( expression) | DOUBLE( expression ) | FLOAT( expression) | HOUR ( expression ) | INTEGER( expression ) | LCASE ( expression) | LENGTH(expression) | LOCATE( expression, expression [, expression] ) | MAX([ALL|DISTINCT] expression) | MICROSECOND( expression ) | MIN([ALL|DISTINCT] expression) | MINUTE ( expression ) | MOD (expression, expression) | MONTH( expression ) | REAL( expression) | SECOND( expression ) | SMALLINT( expression ) | SQRT ( expression) | SUBSTRING( expression, expression[, expression]) | SUM([ALL|DISTINCT] expression) | TIME( expression ) | TIMESTAMP( expression ) | UCASE ( expression) | YEAR( expression )
See Also
EJB query language
Related Tasks
Using EJB query