<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>EntityGraph</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="EntityGraph";
        }
    }
    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};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/EntityExistsException.html" title="class in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/EntityListeners.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/EntityGraph.html" target="_top">Frames</a></li>
<li><a href="EntityGraph.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 EntityGraph" class="title">Interface EntityGraph&lt;T&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the root entity.</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">EntityGraph&lt;T&gt;</span></pre>
<div class="block">This type represents the root of an entity graph that will be used
 as a template to define the attribute nodes and boundaries of a
 graph of entities and entity relationships. The root must be an
 entity type.
 <p>
 The methods to add subgraphs implicitly create the
 corresponding attribute nodes as well; such attribute nodes
 should not be redundantly specified.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../jakarta/persistence/AttributeNode.html" title="interface in jakarta.persistence"><code>AttributeNode</code></a>, 
<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence"><code>Subgraph</code></a>, 
<a href="../../jakarta/persistence/NamedEntityGraph.html" title="annotation in jakarta.persistence"><code>NamedEntityGraph</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></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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addAttributeNodes-jakarta.persistence.metamodel.Attribute...-">addAttributeNodes</a></span>(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,?&gt;...&nbsp;attribute)</code>
<div class="block">Add one or more attribute nodes to the entity graph.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addAttributeNodes-java.lang.String...-">addAttributeNodes</a></span>(java.lang.String...&nbsp;attributeName)</code>
<div class="block">Add one or more attribute nodes to the entity graph.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addKeySubgraph-jakarta.persistence.metamodel.Attribute-">addKeySubgraph</a></span>(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute)</code>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;? extends X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addKeySubgraph-jakarta.persistence.metamodel.Attribute-java.lang.Class-">addKeySubgraph</a></span>(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute,
              java.lang.Class&lt;? extends X&gt;&nbsp;type)</code>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type with inheritance.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addKeySubgraph-java.lang.String-">addKeySubgraph</a></span>(java.lang.String&nbsp;attributeName)</code>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addKeySubgraph-java.lang.String-java.lang.Class-">addKeySubgraph</a></span>(java.lang.String&nbsp;attributeName,
              java.lang.Class&lt;X&gt;&nbsp;type)</code>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type with inheritance.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;? extends T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addSubclassSubgraph-java.lang.Class-">addSubclassSubgraph</a></span>(java.lang.Class&lt;? extends T&gt;&nbsp;type)</code>
<div class="block">Add additional attributes to this entity graph that
 correspond to attributes of subclasses of this EntityGraph's
 entity type.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addSubgraph-jakarta.persistence.metamodel.Attribute-">addSubgraph</a></span>(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute)</code>
<div class="block">Add a node to the graph that corresponds to a managed
 type.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;? extends X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addSubgraph-jakarta.persistence.metamodel.Attribute-java.lang.Class-">addSubgraph</a></span>(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute,
           java.lang.Class&lt;? extends X&gt;&nbsp;type)</code>
<div class="block">Add a node to the graph that corresponds to a managed
 type with inheritance.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addSubgraph-java.lang.String-">addSubgraph</a></span>(java.lang.String&nbsp;attributeName)</code>
<div class="block">Add a node to the graph that corresponds to a managed
 type.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#addSubgraph-java.lang.String-java.lang.Class-">addSubgraph</a></span>(java.lang.String&nbsp;attributeName,
           java.lang.Class&lt;X&gt;&nbsp;type)</code>
<div class="block">Add a node to the graph that corresponds to a managed
 type with inheritance.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../jakarta/persistence/AttributeNode.html" title="interface in jakarta.persistence">AttributeNode</a>&lt;?&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#getAttributeNodes--">getAttributeNodes</a></span>()</code>
<div class="block">Return the attribute nodes of this entity that are included in
 the entity graph.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/persistence/EntityGraph.html#getName--">getName</a></span>()</code>
<div class="block">Return the name of a named EntityGraph (an entity graph
 defined by means of the <code>NamedEntityGraph</code>
 annotation, XML descriptor element, or added by means of the
 <code>addNamedEntityGraph</code> method.</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="getName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre>java.lang.String&nbsp;getName()</pre>
<div class="block">Return the name of a named EntityGraph (an entity graph
 defined by means of the <code>NamedEntityGraph</code>
 annotation, XML descriptor element, or added by means of the
 <code>addNamedEntityGraph</code> method.  Returns null if the
 EntityGraph is not a named EntityGraph.</div>
</li>
</ul>
<a name="addAttributeNodes-java.lang.String...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAttributeNodes</h4>
<pre>void&nbsp;addAttributeNodes(java.lang.String...&nbsp;attributeName)</pre>
<div class="block">Add one or more attribute nodes to the entity graph.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attributeName</code> - name of the attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute is not an 
         attribute of this entity.</dd>
<dd><code>java.lang.IllegalStateException</code> - if the EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addAttributeNodes-jakarta.persistence.metamodel.Attribute...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAttributeNodes</h4>
<pre>void&nbsp;addAttributeNodes(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,?&gt;...&nbsp;attribute)</pre>
<div class="block">Add one or more attribute nodes to the entity graph.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addSubgraph-jakarta.persistence.metamodel.Attribute-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;&nbsp;addSubgraph(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute)</pre>
<div class="block">Add a node to the graph that corresponds to a managed
 type. This allows for construction of multi-node entity graphs
 that include related managed types.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target type 
         is not a managed type</dd>
<dd><code>java.lang.IllegalStateException</code> - if the EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addSubgraph-jakarta.persistence.metamodel.Attribute-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;? extends X&gt;&nbsp;addSubgraph(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute,
                                      java.lang.Class&lt;? extends X&gt;&nbsp;type)</pre>
<div class="block">Add a node to the graph that corresponds to a managed
 type with inheritance.  This allows for multiple subclass
 subgraphs to be defined for this node of the entity
 graph. Subclass subgraphs will automatically include the
 specified attributes of superclass subgraphs.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - attribute</dd>
<dd><code>type</code> - entity subclass</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target 
         type is not a managed type</dd>
<dd><code>java.lang.IllegalStateException</code> - if the EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addSubgraph-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;&nbsp;addSubgraph(java.lang.String&nbsp;attributeName)</pre>
<div class="block">Add a node to the graph that corresponds to a managed
 type. This allows for construction of multi-node entity graphs
 that include related managed types.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attributeName</code> - name of the attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute is not an 
         attribute of this entity.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target type 
         is not a managed type</dd>
<dd><code>java.lang.IllegalStateException</code> - if the EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addSubgraph-java.lang.String-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;&nbsp;addSubgraph(java.lang.String&nbsp;attributeName,
                            java.lang.Class&lt;X&gt;&nbsp;type)</pre>
<div class="block">Add a node to the graph that corresponds to a managed
 type with inheritance.  This allows for multiple subclass
 subgraphs to be defined for this node of the entity graph.
 Subclass subgraphs will automatically include the specified
 attributes of superclass subgraphs.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attributeName</code> - name of the attribute</dd>
<dd><code>type</code> - entity subclass</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute is not an 
         attribute of this managed type.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target type 
         is not a managed type</dd>
<dd><code>java.lang.IllegalStateException</code> - if this EntityGraph has been
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addKeySubgraph-jakarta.persistence.metamodel.Attribute-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addKeySubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;&nbsp;addKeySubgraph(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute)</pre>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type. This allows for construction of
 multi-node entity graphs that include related managed types.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the key attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target type 
         is not an entity</dd>
<dd><code>java.lang.IllegalStateException</code> - if this EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addKeySubgraph-jakarta.persistence.metamodel.Attribute-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addKeySubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;? extends X&gt;&nbsp;addKeySubgraph(<a href="../../jakarta/persistence/metamodel/Attribute.html" title="interface in jakarta.persistence.metamodel">Attribute</a>&lt;<a href="../../jakarta/persistence/EntityGraph.html" title="type parameter in EntityGraph">T</a>,X&gt;&nbsp;attribute,
                                         java.lang.Class&lt;? extends X&gt;&nbsp;type)</pre>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type with inheritance. This allows for
 construction of multi-node entity graphs that include related
 managed types.  Subclass subgraphs will include the specified
 attributes of superclass subgraphs.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - attribute</dd>
<dd><code>type</code> - entity subclass</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the key attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target type 
         is not an entity</dd>
<dd><code>java.lang.IllegalStateException</code> - if this EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addKeySubgraph-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addKeySubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;&nbsp;addKeySubgraph(java.lang.String&nbsp;attributeName)</pre>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type. This allows for construction of
 multi-node entity graphs that include related managed types.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attributeName</code> - name of the attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the key attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute is not an 
         attribute of this entity.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target type 
         is not an entity</dd>
<dd><code>java.lang.IllegalStateException</code> - if this EntityGraph has been
          statically defined</dd>
</dl>
</li>
</ul>
<a name="addKeySubgraph-java.lang.String-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addKeySubgraph</h4>
<pre>&lt;X&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;X&gt;&nbsp;addKeySubgraph(java.lang.String&nbsp;attributeName,
                               java.lang.Class&lt;X&gt;&nbsp;type)</pre>
<div class="block">Add a node to the graph that corresponds to a map key
 that is a managed type with inheritance. This allows for
 construction of multi-node entity graphs that include related
 managed types. Subclass subgraphs will automatically include
 the specified attributes of superclass subgraphs</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attributeName</code> - name of the attribute</dd>
<dd><code>type</code> - entity subclass</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the key attribute</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute is not an 
         attribute of this entity.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the attribute's target type 
         is not a managed type</dd>
<dd><code>java.lang.IllegalStateException</code> - if this EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="addSubclassSubgraph-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSubclassSubgraph</h4>
<pre>&lt;T&gt;&nbsp;<a href="../../jakarta/persistence/Subgraph.html" title="interface in jakarta.persistence">Subgraph</a>&lt;? extends T&gt;&nbsp;addSubclassSubgraph(java.lang.Class&lt;? extends T&gt;&nbsp;type)</pre>
<div class="block">Add additional attributes to this entity graph that
 correspond to attributes of subclasses of this EntityGraph's
 entity type.  Subclass subgraphs will automatically include the
 specified attributes of superclass subgraphs.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - entity subclass</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subgraph for the subclass</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the type is not an entity type</dd>
<dd><code>java.lang.IllegalStateException</code> - if the EntityGraph has been 
         statically defined</dd>
</dl>
</li>
</ul>
<a name="getAttributeNodes--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getAttributeNodes</h4>
<pre>java.util.List&lt;<a href="../../jakarta/persistence/AttributeNode.html" title="interface in jakarta.persistence">AttributeNode</a>&lt;?&gt;&gt;&nbsp;getAttributeNodes()</pre>
<div class="block">Return the attribute nodes of this entity that are included in
 the entity graph.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>attribute nodes for the annotated entity type or empty
         list if none have been defined</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/EntityExistsException.html" title="class in jakarta.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/persistence/EntityListeners.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/EntityGraph.html" target="_top">Frames</a></li>
<li><a href="EntityGraph.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>
