blob: 0854e66c279607b72a55bf2d8ab95d1979e99bd6 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
<title>org.apache.cayenne.query (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-12-05">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.apache.cayenne.query (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.cayenne.query</h1>
</div>
<div class="contentContainer">
<section role="region"><a id="package.description">
<!-- -->
</a>
<div class="block">Defines standard queries supported by Cayenne and extension mechanism to create
custom queries. Many of the queries in this package are used by the framework internally.
Normally users would only care about these general query classes:
<ul>
<li>SelectQuery</li>
<li>SQLTemplate</li>
<li>ProcedureQuery</li>
</ul>
and sometimes - these specialized queries:
<ul>
<li>QueryChain</li>
<li>RelationshipQuery</li>
<li>SingleObjectQuery</li>
</ul>
<p>Cayenne can "execute" any object as a query as long as it implements
Query interface and provides meaningful implementation of either <em>Query.route(...)</em>
and/or
<em>Query.createSQLAction(SQLActionVisitor)}</em> methods.
So users can extend/customize queries if they need to. Custom implementations would
normally either create a query from a standard Cayenne set
and delegate the execution to it (acting as a sort of "query builder"),
or can implement its own non-standard SQLAction.</p></div>
</section>
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="EmbeddableResultSegment.html" title="interface in org.apache.cayenne.query">EmbeddableResultSegment</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="EntityResultSegment.html" title="interface in org.apache.cayenne.query">EntityResultSegment</a></th>
<td class="colLast">
<div class="block">A "compiled" version of a <a href="../map/EntityResult.html" title="class in org.apache.cayenne.map"><code>EntityResult</code></a> descriptor.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ParameterizedQuery.html" title="interface in org.apache.cayenne.query">ParameterizedQuery</a></th>
<td class="colLast">
<div class="block">Defines a query that can serve as a template for other queries.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="PrefetchProcessor.html" title="interface in org.apache.cayenne.query">PrefetchProcessor</a></th>
<td class="colLast">
<div class="block">A hierarchical visitor interface for traversing a tree of PrefetchTreeNodes.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Query.html" title="interface in org.apache.cayenne.query">Query</a></th>
<td class="colLast">
<div class="block">Defines minimal API of a query descriptor that is executable via Cayenne.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="QueryMetadata.html" title="interface in org.apache.cayenne.query">QueryMetadata</a></th>
<td class="colLast">
<div class="block">Provides a common interface for accessing query metadata.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="QueryRouter.html" title="interface in org.apache.cayenne.query">QueryRouter</a></th>
<td class="colLast">
<div class="block">An interface used by Queries to route themselves to an appropriate QueryEngine.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ScalarResultSegment.html" title="interface in org.apache.cayenne.query">ScalarResultSegment</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Select.html" title="interface in org.apache.cayenne.query">Select</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">A common interface for grouping together different kinds of queries that
return results.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SelectById.IdSpec.html" title="interface in org.apache.cayenne.query">SelectById.IdSpec</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SelectById.QueryRoot.html" title="interface in org.apache.cayenne.query">SelectById.QueryRoot</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SQLAction.html" title="interface in org.apache.cayenne.query">SQLAction</a></th>
<td class="colLast">
<div class="block">Defines API for query execution strategy over JDBC connection (as in Strategy Pattern).</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SQLActionVisitor.html" title="interface in org.apache.cayenne.query">SQLActionVisitor</a></th>
<td class="colLast">
<div class="block">A factory interface to create standard SQLActions for a set of standard queries.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AbstractMappedQuery.html" title="class in org.apache.cayenne.query">AbstractMappedQuery</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="AbstractQuery.html" title="class in org.apache.cayenne.query">AbstractQuery</a></th>
<td class="colLast">
<div class="block">A common superclass of Cayenne queries.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BatchQuery.html" title="class in org.apache.cayenne.query">BatchQuery</a></th>
<td class="colLast">
<div class="block">BatchQuery and its descendants allow to group similar data for the batch
database modifications, including inserts, updates and deletes.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BatchQueryRow.html" title="class in org.apache.cayenne.query">BatchQueryRow</a></th>
<td class="colLast">
<div class="block">Represents a single row of values in a BatchQuery.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="CacheableQuery.html" title="class in org.apache.cayenne.query">CacheableQuery</a></th>
<td class="colLast">
<div class="block">Shared functionality for cacheable queries.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ColumnSelect.html" title="class in org.apache.cayenne.query">ColumnSelect</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">A helper builder for queries selecting individual properties based on the root object.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultEmbeddableResultSegment.html" title="class in org.apache.cayenne.query">DefaultEmbeddableResultSegment</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DeleteBatchQuery.html" title="class in org.apache.cayenne.query">DeleteBatchQuery</a></th>
<td class="colLast">
<div class="block">Batched delete query.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="EJBQLQuery.html" title="class in org.apache.cayenne.query">EJBQLQuery</a></th>
<td class="colLast">
<div class="block">An EJBQL query representation in Cayenne.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="FluentSelect.html" title="class in org.apache.cayenne.query">FluentSelect</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">Base class for <a href="ObjectSelect.html" title="class in org.apache.cayenne.query"><code>ObjectSelect</code></a> and <a href="ColumnSelect.html" title="class in org.apache.cayenne.query"><code>ColumnSelect</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="IndirectQuery.html" title="class in org.apache.cayenne.query">IndirectQuery</a></th>
<td class="colLast">
<div class="block">A base superclass for queries that resolve into some other queries during the
routing phase.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="InsertBatchQuery.html" title="class in org.apache.cayenne.query">InsertBatchQuery</a></th>
<td class="colLast">
<div class="block">Batched INSERT query.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="MappedExec.html" title="class in org.apache.cayenne.query">MappedExec</a></th>
<td class="colLast">
<div class="block">A query that represents a named parameterized non selecting query stored in the mapping.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="MappedSelect.html" title="class in org.apache.cayenne.query">MappedSelect</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">A query that represents a named parameterized selecting query stored in the mapping.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ObjectIdQuery.html" title="class in org.apache.cayenne.query">ObjectIdQuery</a></th>
<td class="colLast">
<div class="block">A query that matches zero or one object or data row corresponding to the ObjectId.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ObjectSelect.html" title="class in org.apache.cayenne.query">ObjectSelect</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">A selecting query providing chainable API.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Ordering.html" title="class in org.apache.cayenne.query">Ordering</a></th>
<td class="colLast">
<div class="block">Defines object sorting criteria, used either for in-memory sorting of object
lists or as a specification for building <em>ORDER BY</em> clause of a
SelectQuery query.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Orderings.html" title="class in org.apache.cayenne.query">Orderings</a></th>
<td class="colLast">
<div class="block">Orderings is provided so that you can chain Ordering together and then use
the result to pass into methods that require List&lt;Ordering&gt;</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="PrefetchSelectQuery.html" title="class in org.apache.cayenne.query">PrefetchSelectQuery</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">A SelectQuery to perform a prefetch based on another query.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="PrefetchTreeNode.html" title="class in org.apache.cayenne.query">PrefetchTreeNode</a></th>
<td class="colLast">
<div class="block">Defines a node in a prefetch tree.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ProcedureCall.html" title="class in org.apache.cayenne.query">ProcedureCall</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">Fluent API for calling stored procedures.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ProcedureQuery.html" title="class in org.apache.cayenne.query">ProcedureQuery</a></th>
<td class="colLast">
<div class="block">A query based on Procedure.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="QueryChain.html" title="class in org.apache.cayenne.query">QueryChain</a></th>
<td class="colLast">
<div class="block">A Query decorator for a collection of other queries.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="QueryMetadataProxy.html" title="class in org.apache.cayenne.query">QueryMetadataProxy</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RefreshQuery.html" title="class in org.apache.cayenne.query">RefreshQuery</a></th>
<td class="colLast">
<div class="block">A query that allows to explicitly clear both object and list caches either via refetch
(eager refresh) or invalidate (lazy refresh).</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelationshipQuery.html" title="class in org.apache.cayenne.query">RelationshipQuery</a></th>
<td class="colLast">
<div class="block">A query that selects objects related to a given object via a mapped relationship.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SelectById.html" title="class in org.apache.cayenne.query">SelectById</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">A query to select objects by id.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SelectById.MultiMapIdSpec.html" title="class in org.apache.cayenne.query">SelectById.MultiMapIdSpec</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SelectById.MultiScalarIdSpec.html" title="class in org.apache.cayenne.query">SelectById.MultiScalarIdSpec</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SelectById.SingleMapIdSpec.html" title="class in org.apache.cayenne.query">SelectById.SingleMapIdSpec</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SelectById.SingleScalarIdSpec.html" title="class in org.apache.cayenne.query">SelectById.SingleScalarIdSpec</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SelectQuery.html" title="class in org.apache.cayenne.query">SelectQuery</a>&lt;T&gt;</th>
<td class="colLast">Deprecated.
<div class="deprecationComment">since 4.2, use <a href="ObjectSelect.html" title="class in org.apache.cayenne.query"><code>ObjectSelect</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SQLExec.html" title="class in org.apache.cayenne.query">SQLExec</a></th>
<td class="colLast">
<div class="block">A generic query based on raw SQL and featuring fluent API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SQLSelect.html" title="class in org.apache.cayenne.query">SQLSelect</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">A selecting query based on raw SQL and featuring fluent API.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SQLTemplate.html" title="class in org.apache.cayenne.query">SQLTemplate</a></th>
<td class="colLast">
<div class="block">A query that executes unchanged (except for template preprocessing) "raw" SQL
specified by the user.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SQLTemplateMetadata.html" title="class in org.apache.cayenne.query">SQLTemplateMetadata</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="UpdateBatchQuery.html" title="class in org.apache.cayenne.query">UpdateBatchQuery</a></th>
<td class="colLast">
<div class="block">Batched UPDATE query.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="CapsStrategy.html" title="enum in org.apache.cayenne.query">CapsStrategy</a></th>
<td class="colLast">
<div class="block">Defines forced capitalization of the result column names in the DataRow.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="QueryCacheStrategy.html" title="enum in org.apache.cayenne.query">QueryCacheStrategy</a></th>
<td class="colLast">
<div class="block">Defines query result caching policy.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SortOrder.html" title="enum in org.apache.cayenne.query">SortOrder</a></th>
<td class="colLast">
<div class="block">Constants to order query results (the ORDER BY clause).</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
</footer>
</body>
</html>