<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>Query</title>
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Query";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":18,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/persistence/PrimaryKeyJoinColumns.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/QueryHint.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/persistence/Query.html" target="_top">Frames</a></li>
<li><a href="Query.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">jakarta.persistence</div>
<h2 title="Interface Query" class="title">Interface Query</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../jakarta/persistence/StoredProcedureQuery.html" title="interface in jakarta.persistence">StoredProcedureQuery</a>, <a href="../../jakarta/persistence/TypedQuery.html" title="interface in jakarta.persistence">TypedQuery</a>&lt;X&gt;</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Query</span></pre>
<div class="block">Interface used to control query execution.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/persistence/TypedQuery.html" title="interface in jakarta.persistence"><code>TypedQuery</code></a>, 
<a href="../../jakarta/persistence/StoredProcedureQuery.html" title="interface in jakarta.persistence"><code>StoredProcedureQuery</code></a>, 
<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence"><code>Parameter</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#executeUpdate--">executeUpdate</a></span>()</code>
<div class="block">Execute an update or delete statement.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getFirstResult--">getFirstResult</a></span>()</code>
<div class="block">The position of the first result the query object was set to
 retrieve.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/FlushModeType.html" title="enum in jakarta.persistence">FlushModeType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getFlushMode--">getFlushMode</a></span>()</code>
<div class="block">Get the flush mode in effect for the query execution.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.lang.Object&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getHints--">getHints</a></span>()</code>
<div class="block">Get the properties and hints and associated values that are 
 in effect for the query instance.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/LockModeType.html" title="enum in jakarta.persistence">LockModeType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getLockMode--">getLockMode</a></span>()</code>
<div class="block">Get the current lock mode for the query.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getMaxResults--">getMaxResults</a></span>()</code>
<div class="block">The maximum number of results the query object was set to
 retrieve.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameter-int-">getParameter</a></span>(int&nbsp;position)</code>
<div class="block">Get the parameter object corresponding to the declared
 positional parameter with the given position.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameter-int-java.lang.Class-">getParameter</a></span>(int&nbsp;position,
            java.lang.Class&lt;T&gt;&nbsp;type)</code>
<div class="block">Get the parameter object corresponding to the declared
 positional parameter with the given position and type.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameter-java.lang.String-">getParameter</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Get the parameter object corresponding to the declared
 parameter of the given name.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameter-java.lang.String-java.lang.Class-">getParameter</a></span>(java.lang.String&nbsp;name,
            java.lang.Class&lt;T&gt;&nbsp;type)</code>
<div class="block">Get the parameter object corresponding to the declared
 parameter of the given name and type.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameters--">getParameters</a></span>()</code>
<div class="block">Get the parameter objects corresponding to the declared
 parameters of the query.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameterValue-int-">getParameterValue</a></span>(int&nbsp;position)</code>
<div class="block">Return the input value bound to the positional parameter.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameterValue-jakarta.persistence.Parameter-">getParameterValue</a></span>(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;&nbsp;param)</code>
<div class="block">Return the input value bound to the parameter.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getParameterValue-java.lang.String-">getParameterValue</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Return the input value bound to the named parameter.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.util.List</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getResultList--">getResultList</a></span>()</code>
<div class="block">Execute a SELECT query and return the query results
 as an untyped List.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>default java.util.stream.Stream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getResultStream--">getResultStream</a></span>()</code>
<div class="block">Execute a SELECT query and return the query results
 as an untyped <code>java.util.stream.Stream</code>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#getSingleResult--">getSingleResult</a></span>()</code>
<div class="block">Execute a SELECT query that returns a single untyped result.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#isBound-jakarta.persistence.Parameter-">isBound</a></span>(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;&nbsp;param)</code>
<div class="block">Return a boolean indicating whether a value has been bound 
 to the parameter.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setFirstResult-int-">setFirstResult</a></span>(int&nbsp;startPosition)</code>
<div class="block">Set the position of the first result to retrieve.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setFlushMode-jakarta.persistence.FlushModeType-">setFlushMode</a></span>(<a href="../../jakarta/persistence/FlushModeType.html" title="enum in jakarta.persistence">FlushModeType</a>&nbsp;flushMode)</code>
<div class="block">Set the flush mode type to be used for the query execution.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setHint-java.lang.String-java.lang.Object-">setHint</a></span>(java.lang.String&nbsp;hintName,
       java.lang.Object&nbsp;value)</code>
<div class="block">Set a query property or hint.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setLockMode-jakarta.persistence.LockModeType-">setLockMode</a></span>(<a href="../../jakarta/persistence/LockModeType.html" title="enum in jakarta.persistence">LockModeType</a>&nbsp;lockMode)</code>
<div class="block">Set the lock mode type to be used for the query execution.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setMaxResults-int-">setMaxResults</a></span>(int&nbsp;maxResult)</code>
<div class="block">Set the maximum number of results to retrieve.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-int-java.util.Calendar-jakarta.persistence.TemporalType-">setParameter</a></span>(int&nbsp;position,
            java.util.Calendar&nbsp;value,
            <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</code>
<div class="block">Bind an instance of <code>java.util.Calendar</code> to a positional
 parameter.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-int-java.util.Date-jakarta.persistence.TemporalType-">setParameter</a></span>(int&nbsp;position,
            java.util.Date&nbsp;value,
            <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</code>
<div class="block">Bind an instance of <code>java.util.Date</code> to a positional parameter.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-int-java.lang.Object-">setParameter</a></span>(int&nbsp;position,
            java.lang.Object&nbsp;value)</code>
<div class="block">Bind an argument value to a positional parameter.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-jakarta.persistence.Parameter-java.util.Calendar-jakarta.persistence.TemporalType-">setParameter</a></span>(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;java.util.Calendar&gt;&nbsp;param,
            java.util.Calendar&nbsp;value,
            <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</code>
<div class="block">Bind an instance of <code>java.util.Calendar</code> to a <code>Parameter</code> object.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-jakarta.persistence.Parameter-java.util.Date-jakarta.persistence.TemporalType-">setParameter</a></span>(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;java.util.Date&gt;&nbsp;param,
            java.util.Date&nbsp;value,
            <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</code>
<div class="block">Bind an instance of <code>java.util.Date</code> to a <code>Parameter</code> object.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-jakarta.persistence.Parameter-T-">setParameter</a></span>(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;&nbsp;param,
            T&nbsp;value)</code>
<div class="block">Bind the value of a <code>Parameter</code> object.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-java.lang.String-java.util.Calendar-jakarta.persistence.TemporalType-">setParameter</a></span>(java.lang.String&nbsp;name,
            java.util.Calendar&nbsp;value,
            <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</code>
<div class="block">Bind an instance of <code>java.util.Calendar</code> to a named parameter.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-java.lang.String-java.util.Date-jakarta.persistence.TemporalType-">setParameter</a></span>(java.lang.String&nbsp;name,
            java.util.Date&nbsp;value,
            <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</code>
<div class="block">Bind an instance of <code>java.util.Date</code> to a named parameter.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#setParameter-java.lang.String-java.lang.Object-">setParameter</a></span>(java.lang.String&nbsp;name,
            java.lang.Object&nbsp;value)</code>
<div class="block">Bind an argument value to a named parameter.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/Query.html#unwrap-java.lang.Class-">unwrap</a></span>(java.lang.Class&lt;T&gt;&nbsp;cls)</code>
<div class="block">Return an object of the specified type to allow access to 
 the provider-specific API.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getResultList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResultList</h4>
<pre>java.util.List&nbsp;getResultList()</pre>
<div class="block">Execute a SELECT query and return the query results
 as an untyped List.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a list of the results</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if called for a Java
         Persistence query language UPDATE or DELETE statement</dd>
<dd><code><a href="../../jakarta/persistence/QueryTimeoutException.html" title="class in jakarta.persistence">QueryTimeoutException</a></code> - if the query execution exceeds
         the query timeout value set and only the statement is
         rolled back</dd>
<dd><code><a href="../../jakarta/persistence/TransactionRequiredException.html" title="class in jakarta.persistence">TransactionRequiredException</a></code> - if a lock mode other than
         <code>NONE</code> has been set and there is no transaction
         or the persistence context has not been joined to the transaction</dd>
<dd><code><a href="../../jakarta/persistence/PessimisticLockException.html" title="class in jakarta.persistence">PessimisticLockException</a></code> - if pessimistic locking
         fails and the transaction is rolled back</dd>
<dd><code><a href="../../jakarta/persistence/LockTimeoutException.html" title="class in jakarta.persistence">LockTimeoutException</a></code> - if pessimistic locking
         fails and only the statement is rolled back</dd>
<dd><code><a href="../../jakarta/persistence/PersistenceException.html" title="class in jakarta.persistence">PersistenceException</a></code> - if the query execution exceeds 
         the query timeout value set and the transaction 
         is rolled back</dd>
</dl>
</li>
</ul>
<a name="getResultStream--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResultStream</h4>
<pre>default&nbsp;java.util.stream.Stream&nbsp;getResultStream()</pre>
<div class="block">Execute a SELECT query and return the query results
 as an untyped <code>java.util.stream.Stream</code>.
 By default this method delegates to <code>getResultList().stream()</code>,
 however persistence provider may choose to override this method
 to provide additional capabilities.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a stream of the results</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if called for a Java
         Persistence query language UPDATE or DELETE statement</dd>
<dd><code><a href="../../jakarta/persistence/QueryTimeoutException.html" title="class in jakarta.persistence">QueryTimeoutException</a></code> - if the query execution exceeds
         the query timeout value set and only the statement is
         rolled back</dd>
<dd><code><a href="../../jakarta/persistence/TransactionRequiredException.html" title="class in jakarta.persistence">TransactionRequiredException</a></code> - if a lock mode other than
         <code>NONE</code> has been set and there is no transaction
         or the persistence context has not been joined to the transaction</dd>
<dd><code><a href="../../jakarta/persistence/PessimisticLockException.html" title="class in jakarta.persistence">PessimisticLockException</a></code> - if pessimistic locking
         fails and the transaction is rolled back</dd>
<dd><code><a href="../../jakarta/persistence/LockTimeoutException.html" title="class in jakarta.persistence">LockTimeoutException</a></code> - if pessimistic locking
         fails and only the statement is rolled back</dd>
<dd><code><a href="../../jakarta/persistence/PersistenceException.html" title="class in jakarta.persistence">PersistenceException</a></code> - if the query execution exceeds
         the query timeout value set and the transaction
         is rolled back</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Stream</code>, 
<a href="../../jakarta/persistence/Query.html#getResultList--"><code>getResultList()</code></a></dd>
</dl>
</li>
</ul>
<a name="getSingleResult--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSingleResult</h4>
<pre>java.lang.Object&nbsp;getSingleResult()</pre>
<div class="block">Execute a SELECT query that returns a single untyped result.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the result</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/persistence/NoResultException.html" title="class in jakarta.persistence">NoResultException</a></code> - if there is no result</dd>
<dd><code><a href="../../jakarta/persistence/NonUniqueResultException.html" title="class in jakarta.persistence">NonUniqueResultException</a></code> - if more than one result</dd>
<dd><code>java.lang.IllegalStateException</code> - if called for a Java
         Persistence query language UPDATE or DELETE statement</dd>
<dd><code><a href="../../jakarta/persistence/QueryTimeoutException.html" title="class in jakarta.persistence">QueryTimeoutException</a></code> - if the query execution exceeds
         the query timeout value set and only the statement is
         rolled back</dd>
<dd><code><a href="../../jakarta/persistence/TransactionRequiredException.html" title="class in jakarta.persistence">TransactionRequiredException</a></code> - if a lock mode other than
         <code>NONE</code> has been set and there is no transaction
         or the persistence context has not been joined to the transaction</dd>
<dd><code><a href="../../jakarta/persistence/PessimisticLockException.html" title="class in jakarta.persistence">PessimisticLockException</a></code> - if pessimistic locking
         fails and the transaction is rolled back</dd>
<dd><code><a href="../../jakarta/persistence/LockTimeoutException.html" title="class in jakarta.persistence">LockTimeoutException</a></code> - if pessimistic locking
         fails and only the statement is rolled back</dd>
<dd><code><a href="../../jakarta/persistence/PersistenceException.html" title="class in jakarta.persistence">PersistenceException</a></code> - if the query execution exceeds 
         the query timeout value set and the transaction 
         is rolled back</dd>
</dl>
</li>
</ul>
<a name="executeUpdate--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executeUpdate</h4>
<pre>int&nbsp;executeUpdate()</pre>
<div class="block">Execute an update or delete statement.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of entities updated or deleted</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if called for a Java
         Persistence query language SELECT statement or for
         a criteria query</dd>
<dd><code><a href="../../jakarta/persistence/TransactionRequiredException.html" title="class in jakarta.persistence">TransactionRequiredException</a></code> - if there is 
         no transaction or the persistence context has not
         been joined to the transaction</dd>
<dd><code><a href="../../jakarta/persistence/QueryTimeoutException.html" title="class in jakarta.persistence">QueryTimeoutException</a></code> - if the statement execution 
         exceeds the query timeout value set and only 
         the statement is rolled back</dd>
<dd><code><a href="../../jakarta/persistence/PersistenceException.html" title="class in jakarta.persistence">PersistenceException</a></code> - if the query execution exceeds 
         the query timeout value set and the transaction 
         is rolled back</dd>
</dl>
</li>
</ul>
<a name="setMaxResults-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxResults</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setMaxResults(int&nbsp;maxResult)</pre>
<div class="block">Set the maximum number of results to retrieve.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxResult</code> - maximum number of results to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the argument is negative</dd>
</dl>
</li>
</ul>
<a name="getMaxResults--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxResults</h4>
<pre>int&nbsp;getMaxResults()</pre>
<div class="block">The maximum number of results the query object was set to
 retrieve. Returns <code>Integer.MAX_VALUE</code> if <code>setMaxResults</code> was not
 applied to the query object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>maximum number of results</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setFirstResult-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFirstResult</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setFirstResult(int&nbsp;startPosition)</pre>
<div class="block">Set the position of the first result to retrieve.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>startPosition</code> - position of the first result, 
 numbered from 0</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the argument is negative</dd>
</dl>
</li>
</ul>
<a name="getFirstResult--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFirstResult</h4>
<pre>int&nbsp;getFirstResult()</pre>
<div class="block">The position of the first result the query object was set to
 retrieve. Returns 0 if <code>setFirstResult</code> was not applied to the
 query object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>position of the first result</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setHint-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHint</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setHint(java.lang.String&nbsp;hintName,
              java.lang.Object&nbsp;value)</pre>
<div class="block">Set a query property or hint. The hints elements may be used 
 to specify query properties and hints. Properties defined by
 this specification must be observed by the provider. 
 Vendor-specific hints that are not recognized by a provider
 must be silently ignored. Portable applications should not
 rely on the standard timeout hint. Depending on the database
 in use and the locking mechanisms used by the provider,
 this hint may or may not be observed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hintName</code> - name of the property or hint</dd>
<dd><code>value</code> - value for the property or hint</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the second argument is not
         valid for the implementation</dd>
</dl>
</li>
</ul>
<a name="getHints--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHints</h4>
<pre>java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;getHints()</pre>
<div class="block">Get the properties and hints and associated values that are 
 in effect for the query instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>query properties and hints</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setParameter-jakarta.persistence.Parameter-java.lang.Object-">
<!--   -->
</a><a name="setParameter-jakarta.persistence.Parameter-T-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;&nbsp;param,
                       T&nbsp;value)</pre>
<div class="block">Bind the value of a <code>Parameter</code> object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>param</code> - parameter object</dd>
<dd><code>value</code> - parameter value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter
         does not correspond to a parameter of the
         query</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setParameter-jakarta.persistence.Parameter-java.util.Calendar-jakarta.persistence.TemporalType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;java.util.Calendar&gt;&nbsp;param,
                   java.util.Calendar&nbsp;value,
                   <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</pre>
<div class="block">Bind an instance of <code>java.util.Calendar</code> to a <code>Parameter</code> object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>param</code> - parameter object</dd>
<dd><code>value</code> - parameter value</dd>
<dd><code>temporalType</code> - temporal type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter does not
         correspond to a parameter of the query</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setParameter-jakarta.persistence.Parameter-java.util.Date-jakarta.persistence.TemporalType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;java.util.Date&gt;&nbsp;param,
                   java.util.Date&nbsp;value,
                   <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</pre>
<div class="block">Bind an instance of <code>java.util.Date</code> to a <code>Parameter</code> object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>param</code> - parameter object</dd>
<dd><code>value</code> - parameter value</dd>
<dd><code>temporalType</code> - temporal type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter does not
         correspond to a parameter of the query</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setParameter-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(java.lang.String&nbsp;name,
                   java.lang.Object&nbsp;value)</pre>
<div class="block">Bind an argument value to a named parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - parameter name</dd>
<dd><code>value</code> - parameter value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter name does 
         not correspond to a parameter of the query or if
         the argument is of incorrect type</dd>
</dl>
</li>
</ul>
<a name="setParameter-java.lang.String-java.util.Calendar-jakarta.persistence.TemporalType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(java.lang.String&nbsp;name,
                   java.util.Calendar&nbsp;value,
                   <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</pre>
<div class="block">Bind an instance of <code>java.util.Calendar</code> to a named parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - parameter name</dd>
<dd><code>value</code> - parameter value</dd>
<dd><code>temporalType</code> - temporal type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter name does 
         not correspond to a parameter of the query or if
         the value argument is of incorrect type</dd>
</dl>
</li>
</ul>
<a name="setParameter-java.lang.String-java.util.Date-jakarta.persistence.TemporalType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(java.lang.String&nbsp;name,
                   java.util.Date&nbsp;value,
                   <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</pre>
<div class="block">Bind an instance of <code>java.util.Date</code> to a named parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - parameter name</dd>
<dd><code>value</code> - parameter value</dd>
<dd><code>temporalType</code> - temporal type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter name does 
         not correspond to a parameter of the query or if
         the value argument is of incorrect type</dd>
</dl>
</li>
</ul>
<a name="setParameter-int-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(int&nbsp;position,
                   java.lang.Object&nbsp;value)</pre>
<div class="block">Bind an argument value to a positional parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - position</dd>
<dd><code>value</code> - parameter value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if position does not
         correspond to a positional parameter of the
         query or if the argument is of incorrect type</dd>
</dl>
</li>
</ul>
<a name="setParameter-int-java.util.Calendar-jakarta.persistence.TemporalType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(int&nbsp;position,
                   java.util.Calendar&nbsp;value,
                   <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</pre>
<div class="block">Bind an instance of <code>java.util.Calendar</code> to a positional
 parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - position</dd>
<dd><code>value</code> - parameter value</dd>
<dd><code>temporalType</code> - temporal type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if position does not
         correspond to a positional parameter of the query or
         if the value argument is of incorrect type</dd>
</dl>
</li>
</ul>
<a name="setParameter-int-java.util.Date-jakarta.persistence.TemporalType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParameter</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setParameter(int&nbsp;position,
                   java.util.Date&nbsp;value,
                   <a href="../../jakarta/persistence/TemporalType.html" title="enum in jakarta.persistence">TemporalType</a>&nbsp;temporalType)</pre>
<div class="block">Bind an instance of <code>java.util.Date</code> to a positional parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - position</dd>
<dd><code>value</code> - parameter value</dd>
<dd><code>temporalType</code> - temporal type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if position does not
         correspond to a positional parameter of the query or
         if the value argument is of incorrect type</dd>
</dl>
</li>
</ul>
<a name="getParameters--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameters</h4>
<pre>java.util.Set&lt;<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;&gt;&nbsp;getParameters()</pre>
<div class="block">Get the parameter objects corresponding to the declared
 parameters of the query.
 Returns empty set if the query has no parameters.
 This method is not required to be supported for native
 queries.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of the parameter objects</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if invoked on a native
         query when the implementation does not support 
         this use</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getParameter-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameter</h4>
<pre><a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;&nbsp;getParameter(java.lang.String&nbsp;name)</pre>
<div class="block">Get the parameter object corresponding to the declared
 parameter of the given name.
 This method is not required to be supported for native
 queries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - parameter name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parameter object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter of the
         specified name does not exist</dd>
<dd><code>java.lang.IllegalStateException</code> - if invoked on a native
         query when the implementation does not support 
         this use</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getParameter-java.lang.String-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameter</h4>
<pre>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;&nbsp;getParameter(java.lang.String&nbsp;name,
                              java.lang.Class&lt;T&gt;&nbsp;type)</pre>
<div class="block">Get the parameter object corresponding to the declared
 parameter of the given name and type.
 This method is required to be supported for criteria queries
 only.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - parameter name</dd>
<dd><code>type</code> - type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parameter object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter of the
         specified name does not exist or is not assignable
         to the type</dd>
<dd><code>java.lang.IllegalStateException</code> - if invoked on a native
         query or Jakarta Persistence query language query when
         the implementation does not support this use</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getParameter-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameter</h4>
<pre><a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;&nbsp;getParameter(int&nbsp;position)</pre>
<div class="block">Get the parameter object corresponding to the declared
 positional parameter with the given position.
 This method is not required to be supported for native
 queries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - position</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parameter object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter with the
         specified position does not exist</dd>
<dd><code>java.lang.IllegalStateException</code> - if invoked on a native
         query when the implementation does not support 
         this use</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getParameter-int-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameter</h4>
<pre>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;&nbsp;getParameter(int&nbsp;position,
                              java.lang.Class&lt;T&gt;&nbsp;type)</pre>
<div class="block">Get the parameter object corresponding to the declared
 positional parameter with the given position and type.
 This method is not required to be supported by the provider.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - position</dd>
<dd><code>type</code> - type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parameter object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter with the
         specified position does not exist or is not assignable
         to the type</dd>
<dd><code>java.lang.IllegalStateException</code> - if invoked on a native
         query or Jakarta Persistence query language query when
         the implementation does not support this use</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="isBound-jakarta.persistence.Parameter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBound</h4>
<pre>boolean&nbsp;isBound(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;?&gt;&nbsp;param)</pre>
<div class="block">Return a boolean indicating whether a value has been bound 
 to the parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>param</code> - parameter object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean indicating whether parameter has been bound</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getParameterValue-jakarta.persistence.Parameter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterValue</h4>
<pre>&lt;T&gt;&nbsp;T&nbsp;getParameterValue(<a href="../../jakarta/persistence/Parameter.html" title="interface in jakarta.persistence">Parameter</a>&lt;T&gt;&nbsp;param)</pre>
<div class="block">Return the input value bound to the parameter.
 (Note that OUT parameters are unbound.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>param</code> - parameter object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parameter value</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter is not 
         a parameter of the query</dd>
<dd><code>java.lang.IllegalStateException</code> - if the parameter has not been
         been bound</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getParameterValue-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterValue</h4>
<pre>java.lang.Object&nbsp;getParameterValue(java.lang.String&nbsp;name)</pre>
<div class="block">Return the input value bound to the named parameter.
 (Note that OUT parameters are unbound.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - parameter name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parameter value</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the parameter has not been
         been bound</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter of the
         specified name does not exist</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getParameterValue-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterValue</h4>
<pre>java.lang.Object&nbsp;getParameterValue(int&nbsp;position)</pre>
<div class="block">Return the input value bound to the positional parameter.
 (Note that OUT parameters are unbound.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>position</code> - position</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>parameter value</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the parameter has not been
         been bound</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the parameter with the
         specified position does not exist</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setFlushMode-jakarta.persistence.FlushModeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFlushMode</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setFlushMode(<a href="../../jakarta/persistence/FlushModeType.html" title="enum in jakarta.persistence">FlushModeType</a>&nbsp;flushMode)</pre>
<div class="block">Set the flush mode type to be used for the query execution.
 The flush mode type applies to the query regardless of the
 flush mode type in use for the entity manager.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>flushMode</code> - flush mode</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
</dl>
</li>
</ul>
<a name="getFlushMode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFlushMode</h4>
<pre><a href="../../jakarta/persistence/FlushModeType.html" title="enum in jakarta.persistence">FlushModeType</a>&nbsp;getFlushMode()</pre>
<div class="block">Get the flush mode in effect for the query execution. 
 If a flush mode has not been set for the query object, 
 returns the flush mode in effect for the entity manager.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>flush mode</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="setLockMode-jakarta.persistence.LockModeType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLockMode</h4>
<pre><a href="../../jakarta/persistence/Query.html" title="interface in jakarta.persistence">Query</a>&nbsp;setLockMode(<a href="../../jakarta/persistence/LockModeType.html" title="enum in jakarta.persistence">LockModeType</a>&nbsp;lockMode)</pre>
<div class="block">Set the lock mode type to be used for the query execution.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lockMode</code> - lock mode</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the same query instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the query is found not to be 
         a Jakarta Persistence query language SELECT query
         or a CriteriaQuery query</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="getLockMode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLockMode</h4>
<pre><a href="../../jakarta/persistence/LockModeType.html" title="enum in jakarta.persistence">LockModeType</a>&nbsp;getLockMode()</pre>
<div class="block">Get the current lock mode for the query.  Returns null if a lock
 mode has not been set on the query object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>lock mode</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the query is found not to be
         a Jakarta Persistence query language SELECT query or
         a Criteria API query</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="unwrap-java.lang.Class-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>unwrap</h4>
<pre>&lt;T&gt;&nbsp;T&nbsp;unwrap(java.lang.Class&lt;T&gt;&nbsp;cls)</pre>
<div class="block">Return an object of the specified type to allow access to 
 the provider-specific API.  If the provider's query 
 implementation does not support the specified class, the 
 <code>PersistenceException</code> is thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cls</code> - the class of the object to be returned.  This is
             normally either the underlying query 
             implementation class or an interface that it 
             implements.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of the specified class</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/persistence/PersistenceException.html" title="class in jakarta.persistence">PersistenceException</a></code> - if the provider does not support
         the call</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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>
<div class="subNav">
<ul class="navList">
<li><a href="../../jakarta/persistence/PrimaryKeyJoinColumns.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/QueryHint.html" title="annotation in jakarta.persistence"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/persistence/Query.html" target="_top">Frames</a></li>
<li><a href="Query.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
