<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>EntityManagerFactory</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="EntityManagerFactory";
        }
    }
    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};
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="../../javax/persistence/EntityManager.html" title="interface in javax.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../javax/persistence/EntityNotFoundException.html" title="class in javax.persistence"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/persistence/EntityManagerFactory.html" target="_top">Frames</a></li>
<li><a href="EntityManagerFactory.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">javax.persistence</div>
<h2 title="Interface EntityManagerFactory" class="title">Interface EntityManagerFactory</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../org/apache/openejb/assembler/classic/ReloadableEntityManagerFactory.html" title="class in org.apache.openejb.assembler.classic">ReloadableEntityManagerFactory</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">EntityManagerFactory</span></pre>
<div class="block">Interface used to interact with the entity manager factory
 for the persistence unit.

 <p>When the application has finished using the entity manager
 factory, and/or at application shutdown, the application should
 close the entity manager factory.  Once an
 <code>EntityManagerFactory</code> has been closed, all its entity managers
 are considered to be in the closed state.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 1.0</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>&lt;T&gt;&nbsp;void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#addNamedEntityGraph-java.lang.String-javax.persistence.EntityGraph-">addNamedEntityGraph</a></span>(java.lang.String&nbsp;graphName,
                   <a href="../../javax/persistence/EntityGraph.html" title="interface in javax.persistence">EntityGraph</a>&lt;T&gt;&nbsp;entityGraph)</code>
<div class="block">Add a named copy of the EntityGraph to the
 EntityManagerFactory.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#addNamedQuery-java.lang.String-javax.persistence.Query-">addNamedQuery</a></span>(java.lang.String&nbsp;name,
             <a href="../../javax/persistence/Query.html" title="interface in javax.persistence">Query</a>&nbsp;query)</code>
<div class="block">Define the query, typed query, or stored procedure query as
 a named query such that future query objects can be created
 from it using the <code>createNamedQuery</code> or
 <code>createNamedStoredProcedureQuery</code> method.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#close--">close</a></span>()</code>
<div class="block">Close the factory, releasing any resources that it holds.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#createEntityManager--">createEntityManager</a></span>()</code>
<div class="block">Create a new application-managed <code>EntityManager</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#createEntityManager-java.util.Map-">createEntityManager</a></span>(java.util.Map&nbsp;map)</code>
<div class="block">Create a new application-managed <code>EntityManager</code> with the 
 specified Map of properties.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#createEntityManager-javax.persistence.SynchronizationType-">createEntityManager</a></span>(<a href="../../javax/persistence/SynchronizationType.html" title="enum in javax.persistence">SynchronizationType</a>&nbsp;synchronizationType)</code>
<div class="block">Create a new JTA application-managed <code>EntityManager</code> with the 
 specified synchronization type.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#createEntityManager-javax.persistence.SynchronizationType-java.util.Map-">createEntityManager</a></span>(<a href="../../javax/persistence/SynchronizationType.html" title="enum in javax.persistence">SynchronizationType</a>&nbsp;synchronizationType,
                   java.util.Map&nbsp;map)</code>
<div class="block">Create a new JTA application-managed <code>EntityManager</code> with the 
 specified synchronization type and map of properties.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../javax/persistence/Cache.html" title="interface in javax.persistence">Cache</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#getCache--">getCache</a></span>()</code>
<div class="block">Access the cache that is associated with the entity manager 
 factory (the "second level cache").</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../javax/persistence/criteria/CriteriaBuilder.html" title="interface in javax.persistence.criteria">CriteriaBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#getCriteriaBuilder--">getCriteriaBuilder</a></span>()</code>
<div class="block">Return an instance of <code>CriteriaBuilder</code> for the creation of
 <code>CriteriaQuery</code> objects.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../javax/persistence/metamodel/Metamodel.html" title="interface in javax.persistence.metamodel">Metamodel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#getMetamodel--">getMetamodel</a></span>()</code>
<div class="block">Return an instance of <code>Metamodel</code> interface for access to the
 metamodel of the persistence unit.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../javax/persistence/PersistenceUnitUtil.html" title="interface in javax.persistence">PersistenceUnitUtil</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#getPersistenceUnitUtil--">getPersistenceUnitUtil</a></span>()</code>
<div class="block">Return interface providing access to utility methods
 for the persistence unit.</div>
</td>
</tr>
<tr id="i11" 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="../../javax/persistence/EntityManagerFactory.html#getProperties--">getProperties</a></span>()</code>
<div class="block">Get the properties and associated values that are in effect
 for the entity manager factory.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.html#isOpen--">isOpen</a></span>()</code>
<div class="block">Indicates whether the factory is open.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/persistence/EntityManagerFactory.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="createEntityManager--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEntityManager</h4>
<pre><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a>&nbsp;createEntityManager()</pre>
<div class="block">Create a new application-managed <code>EntityManager</code>.
 This method returns a new <code>EntityManager</code> instance each time
 it is invoked. 
 The <code>isOpen</code> method will return true on the returned instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>entity manager instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been closed</dd>
</dl>
</li>
</ul>
<a name="createEntityManager-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEntityManager</h4>
<pre><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a>&nbsp;createEntityManager(java.util.Map&nbsp;map)</pre>
<div class="block">Create a new application-managed <code>EntityManager</code> with the 
 specified Map of properties. 
 This method returns a new <code>EntityManager</code> instance each time
 it is invoked. 
 The <code>isOpen</code> method will return true on the returned instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>map</code> - properties for entity manager</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>entity manager instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been closed</dd>
</dl>
</li>
</ul>
<a name="createEntityManager-javax.persistence.SynchronizationType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEntityManager</h4>
<pre><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a>&nbsp;createEntityManager(<a href="../../javax/persistence/SynchronizationType.html" title="enum in javax.persistence">SynchronizationType</a>&nbsp;synchronizationType)</pre>
<div class="block">Create a new JTA application-managed <code>EntityManager</code> with the 
 specified synchronization type.
 This method returns a new <code>EntityManager</code> instance each time
 it is invoked. 
 The <code>isOpen</code> method will return true on the returned instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>synchronizationType</code> - how and when the entity manager should be 
 synchronized with the current JTA transaction</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>entity manager instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been configured for resource-local entity managers or is closed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.1</dd>
</dl>
</li>
</ul>
<a name="createEntityManager-javax.persistence.SynchronizationType-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEntityManager</h4>
<pre><a href="../../javax/persistence/EntityManager.html" title="interface in javax.persistence">EntityManager</a>&nbsp;createEntityManager(<a href="../../javax/persistence/SynchronizationType.html" title="enum in javax.persistence">SynchronizationType</a>&nbsp;synchronizationType,
                                  java.util.Map&nbsp;map)</pre>
<div class="block">Create a new JTA application-managed <code>EntityManager</code> with the 
 specified synchronization type and map of properties. 
 This method returns a new <code>EntityManager</code> instance each time
 it is invoked. 
 The <code>isOpen</code> method will return true on the returned instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>synchronizationType</code> - how and when the entity manager should be 
 synchronized with the current JTA transaction</dd>
<dd><code>map</code> - properties for entity manager</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>entity manager instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been configured for resource-local entity managers or is closed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.1</dd>
</dl>
</li>
</ul>
<a name="getCriteriaBuilder--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCriteriaBuilder</h4>
<pre><a href="../../javax/persistence/criteria/CriteriaBuilder.html" title="interface in javax.persistence.criteria">CriteriaBuilder</a>&nbsp;getCriteriaBuilder()</pre>
<div class="block">Return an instance of <code>CriteriaBuilder</code> for the creation of
 <code>CriteriaQuery</code> objects.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CriteriaBuilder instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory 
 has been closed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.0</dd>
</dl>
</li>
</ul>
<a name="getMetamodel--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetamodel</h4>
<pre><a href="../../javax/persistence/metamodel/Metamodel.html" title="interface in javax.persistence.metamodel">Metamodel</a>&nbsp;getMetamodel()</pre>
<div class="block">Return an instance of <code>Metamodel</code> interface for access to the
 metamodel of the persistence unit.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Metamodel instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been closed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.0</dd>
</dl>
</li>
</ul>
<a name="isOpen--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOpen</h4>
<pre>boolean&nbsp;isOpen()</pre>
<div class="block">Indicates whether the factory is open. Returns true
 until the factory has been closed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean indicating whether the factory is open</dd>
</dl>
</li>
</ul>
<a name="close--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()</pre>
<div class="block">Close the factory, releasing any resources that it holds.
 After a factory instance has been closed, all methods invoked
 on it will throw the <code>IllegalStateException</code>, except
 for <code>isOpen</code>, which will return false. Once an
 <code>EntityManagerFactory</code> has been closed, all its
 entity managers are considered to be in the closed state.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been closed</dd>
</dl>
</li>
</ul>
<a name="getProperties--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProperties</h4>
<pre>java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;getProperties()</pre>
<div class="block">Get the properties and associated values that are in effect
 for the entity manager factory. Changing the contents of the
 map does not change the configuration in effect.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>properties</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory 
 has been closed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.0</dd>
</dl>
</li>
</ul>
<a name="getCache--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCache</h4>
<pre><a href="../../javax/persistence/Cache.html" title="interface in javax.persistence">Cache</a>&nbsp;getCache()</pre>
<div class="block">Access the cache that is associated with the entity manager 
 factory (the "second level cache").</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>instance of the <code>Cache</code> interface or null if
 no cache is in use</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been closed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.0</dd>
</dl>
</li>
</ul>
<a name="getPersistenceUnitUtil--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPersistenceUnitUtil</h4>
<pre><a href="../../javax/persistence/PersistenceUnitUtil.html" title="interface in javax.persistence">PersistenceUnitUtil</a>&nbsp;getPersistenceUnitUtil()</pre>
<div class="block">Return interface providing access to utility methods
 for the persistence unit.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>PersistenceUnitUtil</code> interface</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the entity manager factory
 has been closed</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.0</dd>
</dl>
</li>
</ul>
<a name="addNamedQuery-java.lang.String-javax.persistence.Query-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addNamedQuery</h4>
<pre>void&nbsp;addNamedQuery(java.lang.String&nbsp;name,
                   <a href="../../javax/persistence/Query.html" title="interface in javax.persistence">Query</a>&nbsp;query)</pre>
<div class="block">Define the query, typed query, or stored procedure query as
 a named query such that future query objects can be created
 from it using the <code>createNamedQuery</code> or
 <code>createNamedStoredProcedureQuery</code> method.
 <p>Any configuration of the query object (except for actual
 parameter binding) in effect when the named query is added
 is retained as part of the named query definition.
 This includes configuration information such as max results,
 hints, flush mode, lock mode, result set mapping information,
 and information about stored procedure parameters.
 <p>When the query is executed, information that can be set
 by means of the query APIs can be overridden. Information
 that is overridden does not affect the named query as
 registered with the entity manager factory, and thus does
 not affect subsequent query objects created from it by
 means of the <code>createNamedQuery</code> or
 <code>createNamedStoredProcedureQuery</code> method.
 <p>If a named query of the same name has been previously
 defined, either statically via metadata or via this method,
 that query definition is replaced.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name for the query</dd>
<dd><code>query</code> - Query, TypedQuery, or StoredProcedureQuery object</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.1</dd>
</dl>
</li>
</ul>
<a name="unwrap-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<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 EntityManagerFactory
 implementation does not support the specified class, the
 PersistenceException 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 EntityManagerFactory
 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="../../javax/persistence/PersistenceException.html" title="class in javax.persistence">PersistenceException</a></code> - if the provider does not
 support the call</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.1</dd>
</dl>
</li>
</ul>
<a name="addNamedEntityGraph-java.lang.String-javax.persistence.EntityGraph-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>addNamedEntityGraph</h4>
<pre>&lt;T&gt;&nbsp;void&nbsp;addNamedEntityGraph(java.lang.String&nbsp;graphName,
                             <a href="../../javax/persistence/EntityGraph.html" title="interface in javax.persistence">EntityGraph</a>&lt;T&gt;&nbsp;entityGraph)</pre>
<div class="block">Add a named copy of the EntityGraph to the
 EntityManagerFactory.  If an entity graph with the same name
 already exists, it is replaced.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>graphName</code> - name for the entity graph</dd>
<dd><code>entityGraph</code> - entity graph</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Java Persistence 2.1</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="../../javax/persistence/EntityManager.html" title="interface in javax.persistence"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../javax/persistence/EntityNotFoundException.html" title="class in javax.persistence"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?javax/persistence/EntityManagerFactory.html" target="_top">Frames</a></li>
<li><a href="EntityManagerFactory.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>
