-
Language:
English
-
Language:
English
Red Hat Training
A Red Hat training course is available for Red Hat JBoss Data Virtualization
6.4. SQL Extensions
The hierarchical database adds several features to its support of the standard JCR-SQL and JCR-SQL2 grammars. These extensions include support for:
- Additional join types with
FULL OUTER JOIN
andCROSS JOIN
UNION
,INTERSECT
, andEXCEPT
set operations- Non-correlated subqueries in the
WHERE
clause; multiple subqueries can be used in a single query, and they can even be nested - Removing duplicate rows with
SELECT DISTINCT ...
- Limit the number of rows returned with
LIMIT
count
- Skip initial rows with
OFFSET
number
- Constrain the depth of a node with
DEPTH(
selectorName
)
- Constrain the path of a node with
PATH(
selectorName
)
- Constrain the references from a node with
REFERENCE(
selectorName
.
property
)
andREFERENCE(
selectorName
)
- Ranges of criteria values using
BETWEEN
lower
AND
upper
and optionally specifying whether to exclude the lower and/or upper values - Set criteria to specify multiple criteria values using
IN
andNOT IN
- Use simple arithmetic in criteria and
ORDER BY
clauses, such asSCORE(type1)*3 + SCORE(type2)
- Use pseudo-columns to include the path, score, node name, node local name, and node depth in result columns or in criteria
More detail of the particular extensions can be found in the JCR-SQL2 grammar.
Use these extensions within your JCR-SQL or JCR-SQL2 query expressions strings, and use the standard JCR API to obtain a
Query
:
// Obtain the query manager for the session via the workspace ... javax.jcr.query.QueryManager queryManager = session.getWorkspace().getQueryManager(); // Create a query object ... String language = ... String expression = ... // USE THE EXTENSIONS HERE javax.jcr.query.Query query = queryManager.createQuery(expression,language); // And use the query ...