196 lines
6.5 KiB
Plaintext
196 lines
6.5 KiB
Plaintext
/** Query is returned from Session.createQuery().
|
|
*
|
|
* Query is created based on a mapped domain object, a mapped constructor,
|
|
* or a table name. It contains properties, one for each persistent property
|
|
* in the domain object. If created based on a table name, the properties
|
|
* correspond exactly to columns in the table. These properties
|
|
* can be used to construct filters (where clauses for the query).
|
|
* Query also contains a reference to the Session that created it.
|
|
* Query can be executed, passing a parameters object that governs how the
|
|
* query will be executed.
|
|
*
|
|
*/
|
|
|
|
/** Specify the filter for this query. Where returns the Query to allow
|
|
* function chaining.
|
|
*/
|
|
where(queryPredicate);
|
|
|
|
/** execute()
|
|
* ASYNC
|
|
* Execute this query using the parameters specified.
|
|
* Parameters is an object with one property holding a value for each
|
|
* parameter specified by the query param function, and optional keywords
|
|
* that govern how the query is executed.
|
|
* Keywords are:
|
|
* 'order' value: 'asc' or 'desc'; default: no order
|
|
* 'skip' value: number of rows to skip from the result; default: 0
|
|
* 'limit' value: number of rows to return; default: a couple of billion
|
|
*
|
|
* execute() returns a promise. On success, the promise will be fulfilled
|
|
* with a value holding an array of query results. The optional callback
|
|
* an error value and the query results. Any extra arguments passed after
|
|
* the callback will be passed to the callback function verbatim as
|
|
* parameters following the results.
|
|
*
|
|
* The results of the query are returned in the callback.
|
|
* The query is executed in the context of the session's current state:
|
|
* autocommit if a transaction has not been started;
|
|
* default lock mode;
|
|
* the partition key.
|
|
* @return promise
|
|
*/
|
|
execute(queryParameters, [callback], [...]);
|
|
|
|
/** Count the number of instances filtered by this query.
|
|
* XXX Not implemented in this version. XXX
|
|
*/
|
|
count(Object parameters,
|
|
Function(error, numberOfInstancesFiltered, ... ) callback,
|
|
...);
|
|
|
|
/** Delete the instances filtered by this query.
|
|
* XXX Not implemented in this version. XXX
|
|
*/
|
|
delete(Object parameters,
|
|
Function(error, numberOfInstancesDeleted, ...) callback,
|
|
...);
|
|
|
|
/** Get the session from which this query was created.
|
|
* @return the session
|
|
* IMMEDIATE
|
|
*/
|
|
getSession();
|
|
|
|
/** QueryParameter represents a named parameter used to pass values to a query.
|
|
* QueryParameter is created directly from the Query, e.g.
|
|
* session.createQuery(t_basic, function(err, query) {
|
|
* var idParam = query.param('p_id'); // idParam is a QueryParameter
|
|
* var idField = query.id; // idField is a QueryField
|
|
* var predicate = idField.eq(idParam); // predicate is a QueryPredicate
|
|
* query.where(predicate);
|
|
*
|
|
* fluently, the above could be written as:
|
|
* query.where(query.id.eq(query.param('p_id')));
|
|
*
|
|
* query.execute({'p_id': 112}, function(err, results) {
|
|
* ...
|
|
* }
|
|
* }
|
|
* When executing a query, the value for each parameter is substituted by the
|
|
* value of the named property in the first argument to the execute function.
|
|
*/
|
|
function QueryParameter();
|
|
|
|
/** QueryField represents a property in the domain object that is used
|
|
* in a filter. Each persistent property in the domain object has a
|
|
* corresponding QueryField in the Query object.
|
|
* The QueryField can be accessed directly from the Query, e.g.
|
|
* session.createQuery(t_basic, function(err, query) {
|
|
* var idField = query.id; // idField is a QueryField
|
|
* var predicate = idField.eq(query.param('p_id'); // predicate is a QueryPredicate
|
|
* ...
|
|
* }
|
|
* A QueryField can also be obtained from the Query property 'field'. This is
|
|
* useful to clarify the intent in cases where the column name is a reserved
|
|
* word in mysql-js Query.
|
|
* For example, whereField1 and whereField2 represent the same query field.
|
|
* var whereField1 = query.where; // 'where' is the name of the column
|
|
* var whereField2 = query.field.where;
|
|
* IMMEDIATE
|
|
*/
|
|
function QueryField();
|
|
|
|
/** eq represents equal comparison of a property and a parameter.
|
|
* @return QueryPredicate
|
|
*/
|
|
function eq(Object parameterOrLiteral);
|
|
|
|
/** ne represents not equal comparison of a property and a parameter.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function ne(Object parameterOrLiteral);
|
|
|
|
/** gt represents greater than comparison of a property and a parameter.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function gt(Object parameterOrLiteral);
|
|
|
|
/** ge represents greater than or equal comparison of a property and parameter.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function ge(Object parameterOrLiteral);
|
|
|
|
/** lt represents less than comparison of a property and a parameter.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function lt(Object parameterOrLiteral);
|
|
|
|
/** le represents less than or equal comparison of a property and a parameter.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function le(Object parameterOrLiteral);
|
|
|
|
/** between represents between comparison of a property and a lower bound
|
|
* and an upper bound parameter using greater equal and less equal semantics.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function between(Object parameterOrLiteral, Object parameterOrLiteral);
|
|
|
|
/** isNull represents null comparison of a property.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function isNull();
|
|
|
|
/** isNotNull represents not-null comparison of a property.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function isNotNull();
|
|
|
|
/** QueryPredicate represents the result of comparing a query field to a
|
|
* parameter. QueryPredicate can be used as the filter for a query or can be
|
|
* combined with other QueryPredicates using functions 'and', 'or',
|
|
* 'andNot', 'orNot', and 'not'.
|
|
*/
|
|
function QueryPredicate();
|
|
|
|
/** and represents the 'and' condition joining this QueryPredicate with another.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function and(QueryPredicate other);
|
|
|
|
/** andNot represents the 'and' condition joining this QueryPredicate with
|
|
* the negation of another.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function andNot(QueryPredicate other);
|
|
|
|
/** or represents the 'or' condition joining this QueryPredicate with another.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function or(QueryPredicate other);
|
|
|
|
/** orNot represents the 'or' condition joining this QueryPredicate with
|
|
* the negation of another.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function orNot(QueryPredicate other);
|
|
|
|
/** not represents the negation of this QueryPredicate.
|
|
* @return QueryPredicate
|
|
* IMMEDIATE
|
|
*/
|
|
function not(QueryPredicate other);
|