blob: 51e49ddbd7d3c222cddf7da8c520baf161013d37 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>Table of Contents | EclipseLink 2.5.x Understanding EclipseLink</title>
<meta name="generator" content="Oracle DARB XHTML Converter (Mode = document) - Version 1.0.17" />
<meta name="date" content="2013-10-03T10:37:16Z" />
<meta name="description" content="" />
<meta name="robots" content="noarchive" />
<meta name="doctitle" content="Table of Contents" />
<meta name="relnum" content="2.5" />
<link rel="stylesheet" type="text/css" href="../../dcommon/style.css" media="screen" />
<link rel="copyright" href="../../dcommon/html/cpyr.htm" title="Copyright" type="text/html" />
<link rel="start" href="../../index.htm" title="Home" type="text/html" />
<link rel="contents" href="toc.htm" title="Contents" type="text/html" />
<link rel="next" href="loe.htm" title="Next" type="text/html" />
<!-- START: Disqus --><script type="text/javascript"> var disqus_developer = 0; </script><!-- END: Disqus --><!-- START: Sharethis --><script type="text/javascript">var switchTo5x=true;</script><script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script><script type="text/javascript" src="http://s.sharethis.com/loader.js"></script> <!-- END: Sharethis --></head>
<body bgcolor="#FFFFFF"><iframe id="docheader" frameborder="0" framemargin="0" scrolling="no" src="../../dcommon/header.html"></iframe><script src="http://www.google.com/jsapi" type="text/javascript"></script><script type="text/javascript"> google.load('search', '1', {language : 'en'}); google.setOnLoadCallback(function() { var customSearchOptions = {}; var googleAnalyticsOptions = {}; googleAnalyticsOptions['queryParameter'] = 'q'; googleAnalyticsOptions['categoryParameter'] = ''; customSearchOptions['googleAnalyticsOptions'] = googleAnalyticsOptions; var customSearchControl = new google.search.CustomSearchControl( '016171230611334810008:mdbgdwjv8zu', customSearchOptions); customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET); var options = new google.search.DrawOptions(); options.setSearchFormRoot('cse-search-form'); customSearchControl.draw('cse', options); }, true);</script><link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" /><div id="cse" style="width:100%;"></div>
<div class="header"><a id="top" name="top"></a>
<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td align="left" valign="top"><div class="booktitle">Understanding EclipseLink,
<b>2.5</b><br /></font></td>
<td valign="bottom" align="right" width="144">
<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td>&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
<hr />
<table class="navigation simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100" align="center">
<tr>
<td align="center"><a href="loe.htm"><img src="../../dcommon/images/rarrow.png" alt="Next" border="0" height="16" width="16" /></a></td>
<td>&nbsp;</td>
</tr>
</table>
</div>
<!-- class="header" -->
<div class="ind"><!-- End Header -->
<div class="tocnav"><table summary="" cellspacing="0" cellpadding="0"><tr><td>&nbsp;</td><td align="center"><a href="../../" class="external text" title="Search" rel="nofollow" target="_top"><img src="../../dcommon/images/search.png" alt="Search" style="border:0;" /><br /><span class="mini"></span></a></td><td>&nbsp;</td><td align="center"><a href="../eclipselink_otlcg.pdf" title="PDF" target="_blank"><img src="../../dcommon/images/pdf_icon.png" style="padding-right:5px;" alt="PDF"></a></td></td></tr></table></div><h1 style="margin-top:0 !important"><font face="arial, helvetica, sans-serif">Contents</font></h1>
<h2><font face="arial, helvetica, sans-serif"><a href="loe.htm">List of Examples</a></font></h2>
<h2><a href="title_eclipselink.htm"><font face="arial, helvetica, sans-serif">Title and Copyright Information</font></a></h2>
<h2><a href="preface.htm#sthref1"><font face="arial, helvetica, sans-serif">Preface</font></a></h2>
<ul style="list-style-type:none">
<li><a href="preface.htm#sthref2">Audience</a></li>
<li><a href="preface.htm#sthref3">Related Documents</a></li>
<li><a href="preface.htm#sthref4">Conventions</a></li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="general.htm#sthref5"><span class="secnum">1</span> Overview of EclipseLink</a></font></h2>
<ul style="list-style-type:none">
<li><a href="general001.htm#CHDIJJGA">Understanding EclipseLink</a>
<ul style="list-style-type:none">
<li><a href="general001.htm#CHDBEGEB">What Is the Object-Persistence Impedance Mismatch?</a></li>
<li><a href="general001.htm#sthref6">The EclipseLink Solution</a></li>
</ul>
</li>
<li><a href="general002.htm#CHDCFGIC">Key Features</a></li>
<li><a href="general003.htm#CHDBIFDB">New Features</a>
<ul style="list-style-type:none">
<li><a href="general003.htm#CHDBIADD">RESTful Services</a></li>
<li><a href="general003.htm#CHDEBFBF">Tenant Isolation</a></li>
<li><a href="general003.htm#CHDFFJJF">NoSQL</a></li>
<li><a href="general003.htm#CHDFCFIC">JSON</a></li>
<li><a href="general003.htm#CHDJAHBA">Database Change Notification</a></li>
<li><a href="general003.htm#CHDJCBBF">Extensible Entities</a></li>
<li><a href="general003.htm#CHDBJIEH">Composite Persistence Units</a></li>
<li><a href="general003.htm#CHDHICEF">External Metadata Sources</a></li>
</ul>
</li>
<li><a href="general004.htm#CHDBJDEC">Key Concepts</a>
<ul style="list-style-type:none">
<li><a href="general004.htm#CHDBJIJE">EclipseLink Metadata</a></li>
<li><a href="general004.htm#CHDGEFJG">Entities</a></li>
<li><a href="general004.htm#CHDBABAD">Descriptors</a></li>
<li><a href="general004.htm#CHDFGCJF">Mappings</a></li>
<li><a href="general004.htm#CHDFFJIA">Data Access</a></li>
<li><a href="general004.htm#CHDEEBFG">Caching</a></li>
<li><a href="general004.htm#CHDBJIEA">Queries</a></li>
<li><a href="general004.htm#CHDJJFCE">Expression Framework</a></li>
<li><a href="general004.htm#CHDGCGDD">NoSQL Databases</a></li>
<li><a href="general004.htm#CHDBIEJD">Performance Monitoring and Profiling</a></li>
</ul>
</li>
<li><a href="general005.htm#CHDIEEHG">Key Components</a>
<ul style="list-style-type:none">
<li><a href="general005.htm#sthref7">EclipseLink Core and API</a></li>
<li><a href="general005.htm#sthref8">Object-Relational (JPA 2.0) Component</a></li>
<li><a href="general005.htm#sthref9">Object-XML (JAXB 2.2) Component</a>
<ul style="list-style-type:none">
<li><a href="general005.htm#sthref10">SDO Component</a></li>
</ul>
</li>
<li><a href="general005.htm#CHDIGIDF">Database Web Services Component</a></li>
</ul>
</li>
<li><a href="general006.htm#CHDDDGEH">Key Tools</a>
<ul style="list-style-type:none">
<li><a href="general006.htm#BABGBABF">Oracle JDeveloper</a></li>
<li><a href="general006.htm#BABDFFCB">Eclipse</a></li>
<li><a href="general006.htm#BABCCIDI">NetBeans</a></li>
</ul>
</li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="blocks.htm#sthref11"><span class="secnum">2</span> Understanding Mappings</a></font></h2>
<ul style="list-style-type:none">
<li><a href="blocks001.htm#CHDDJCHD">About Object-Relational Mapping</a>
<ul style="list-style-type:none">
<li><a href="blocks001.htm#CHDHIEDE">Understanding Object-Relational Entity Architecture</a>
<ul style="list-style-type:none">
<li><a href="blocks001.htm#sthref13">Entities</a></li>
<li><a href="blocks001.htm#sthref14">Persistence and Persistence Units</a></li>
<li><a href="blocks001.htm#sthref15">Entity Managers</a></li>
</ul>
</li>
<li><a href="blocks001.htm#CHDIADII">Adding Metadata Using Annotations</a>
<ul style="list-style-type:none">
<li><a href="blocks001.htm#sthref16">Advantages and Disadvantages of Using Annotations</a></li>
</ul>
</li>
<li><a href="blocks001.htm#CHDIEIFJ">About Configuration Basics</a>
<ul style="list-style-type:none">
<li><a href="blocks001.htm#sthref17">Default Configuration Values</a></li>
<li><a href="blocks001.htm#sthref18">Configuring Persistence Units Using persistence.xml</a></li>
<li><a href="blocks001.htm#CHDFGGBB">Object-Relational Data Type Mappings</a></li>
<li><a href="blocks001.htm#sthref21">Overriding and Merging Mapping Information</a></li>
<li><a href="blocks001.htm#sthref22">Validating the XML Schema</a></li>
<li><a href="blocks001.htm#sthref23">Advantages and Disadvantages of Using XML</a></li>
</ul>
</li>
<li><a href="blocks001.htm#CHDFFBHD">About Data Sources</a></li>
<li><a href="blocks001.htm#CHDGGEID">About EclipseLink Caches</a>
<ul style="list-style-type:none">
<li><a href="blocks001.htm#sthref24">Defining Cache Behavior</a></li>
<li><a href="blocks001.htm#sthref25">Caching in Clustered Environments</a></li>
</ul>
</li>
<li><a href="blocks001.htm#CHDFGCJB">About Database Queries</a></li>
</ul>
</li>
<li><a href="blocks002.htm#CHDJGIEF">About Object-XML Mapping</a>
<ul style="list-style-type:none">
<li><a href="blocks002.htm#CHDBGGJD">Using EclipseLink Object-XML as the JAXB Provider</a></li>
<li><a href="blocks002.htm#CHDBDFCI">Understanding Object-XML Architecture</a>
<ul style="list-style-type:none">
<li><a href="blocks002.htm#CHDDHHEI">JAXB Contexts and JAXB Context Factories</a></li>
</ul>
</li>
<li><a href="blocks002.htm#CHDIJADI">Serving Metadata for Object-XML</a></li>
<li><a href="blocks002.htm#CHDCHHHI">About XML Bindings</a>
<ul style="list-style-type:none">
<li><a href="blocks002.htm#CHDIJFAC">Specifying EclipseLink Object-XML Mappings Using eclipselink-oxm.xml</a></li>
</ul>
</li>
<li><a href="blocks002.htm#CHDDFBIG">About Object-XML Data Type Mappings</a></li>
<li><a href="blocks002.htm#CHDDHJAJ">Querying Objects by XPath</a></li>
</ul>
</li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="app_dev.htm#sthref27"><span class="secnum">3</span> Understanding Application Development</a></font></h2>
<ul style="list-style-type:none">
<li><a href="app_dev001.htm#BABJDEEG">Typical Development Stages</a></li>
<li><a href="app_dev002.htm#BABGCJBJ">Target Platforms</a></li>
<li><a href="app_dev003.htm#BABCCAHJ">Building and Using the Persistence Layer</a>
<ul style="list-style-type:none">
<li><a href="app_dev003.htm#BABBGDHH">Implementation Options</a>
<ul style="list-style-type:none">
<li><a href="app_dev003.htm#CCHGEJEA">Using EclipseLink JPA Metatdata, Annotations, and XML</a></li>
<li><a href="app_dev003.htm#CCHHEIFG">Using EclipseLink Metadata Java API</a></li>
<li><a href="app_dev003.htm#CCHJBHDG">Using Method and Direct Field Access</a></li>
<li><a href="app_dev003.htm#CCHGGAGE">Using Java Byte-code Weaving</a></li>
</ul>
</li>
<li><a href="app_dev003.htm#BABDHDIA">Persistent Class Requirements</a></li>
<li><a href="app_dev003.htm#BABCCJCC">Persistence Layer Components</a>
<ul style="list-style-type:none">
<li><a href="app_dev003.htm#BABFEEGF">Mapping Metadata</a></li>
<li><a href="app_dev003.htm#BABBGFHF">Cache</a></li>
<li><a href="app_dev003.htm#BABJDGGH">Queries and Expressions</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="app_dev004.htm#BABFHHIE">About Application Deployment</a></li>
<li><a href="app_dev005.htm#BABFEDHA">About Persisting Objects</a>
<ul style="list-style-type:none">
<li><a href="app_dev005.htm#BABEIFFG">Application Object Model</a></li>
<li><a href="app_dev005.htm#BABBIABD">Data Storage Schema</a></li>
<li><a href="app_dev005.htm#BABDCJDH">Primary Keys and Object Identity</a></li>
<li><a href="app_dev005.htm#BABFEIHF">Mappings</a></li>
<li><a href="app_dev005.htm#BABEEJHA">Foreign Keys and Object Relationships</a></li>
<li><a href="app_dev005.htm#BABBAIFB">Inheritance</a></li>
<li><a href="app_dev005.htm#BABEDGBH">Concurrency</a></li>
<li><a href="app_dev005.htm#BABBBCAC">Caching</a></li>
<li><a href="app_dev005.htm#BABGFFJF">Nonintrusive Persistence</a></li>
<li><a href="app_dev005.htm#BABCCDGC">Indirection</a></li>
<li><a href="app_dev005.htm#CCHBBHDH">Mutability</a></li>
</ul>
</li>
<li><a href="app_dev006.htm#CHEDICEE">About Metadata</a>
<ul style="list-style-type:none">
<li><a href="app_dev006.htm#BABDDBIJ">Advantages of the Metadata Architecture</a></li>
<li><a href="app_dev006.htm#BABEECEF">Creating Project Metadata</a>
<ul style="list-style-type:none">
<li><a href="app_dev006.htm#BABIECAI">Descriptors and Mappings</a></li>
<li><a href="app_dev006.htm#BABIEAJE">Data Source Login Information</a></li>
</ul>
</li>
<li><a href="app_dev006.htm#BABHHGDE">Creating Session Metadata</a></li>
</ul>
</li>
<li><a href="app_dev007.htm#CCHJEDFH">About Weaving</a>
<ul style="list-style-type:none">
<li><a href="app_dev007.htm#CCHHBDAJ">Using Dynamic Weaving</a></li>
<li><a href="app_dev007.htm#CCHGIFEG">Using Static Weaving</a></li>
<li><a href="app_dev007.htm#CHDHAAHE">Weaving POJO Classes</a></li>
<li><a href="app_dev007.htm#CHDGACIJ">Weaving and Java EE Application Servers</a></li>
<li><a href="app_dev007.htm#CHDECEBI">Disabling Weaving with Persistence Unit Properties</a></li>
</ul>
</li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="entities.htm#CIHGAJCF"><span class="secnum">4</span> Understanding Entities</a></font></h2>
<ul style="list-style-type:none">
<li><a href="entities001.htm#BABEIGGB">Identifying Entities</a></li>
<li><a href="entities002.htm#BGBBIEHE">Entities and Persistent Identity</a></li>
<li><a href="entities003.htm#BABCCFHI">Entities and Database Tables</a></li>
<li><a href="entities004.htm#BABFIFDJ">Entities and Inheritance</a></li>
<li><a href="entities005.htm#BABGBFDG">Entities and Embedded Objects</a></li>
<li><a href="entities006.htm#BGBCGGDE">Entities and Sequence Generation</a></li>
<li><a href="entities007.htm#BGBBDDIJ">Entities and Locking</a></li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="appdeployment.htm#BABICEJG"><span class="secnum">5</span> Understanding Application Deployment</a></font></h2>
<ul style="list-style-type:none">
<li><a href="appdeployment001.htm#CHDHEDBB">Integrating with an Application Server</a>
<ul style="list-style-type:none">
<li><a href="appdeployment001.htm#CHDHEIEB">Software Requirements</a></li>
<li><a href="appdeployment001.htm#CHDJFFAB">Setting Security Permissions</a></li>
<li><a href="appdeployment001.htm#CHDEEFED">Migrating Applications to the EclipseLink Persistence Manager</a></li>
</ul>
</li>
<li><a href="appdeployment002.htm#BABHCJDG">About the Persistence Unit</a>
<ul style="list-style-type:none">
<li><a href="appdeployment002.htm#BGBCGCBI">About the Persistence Unit Name</a></li>
<li><a href="appdeployment002.htm#BGBJGFGJ">About the Transaction Type, Persistence Provider and Data Source</a></li>
<li><a href="appdeployment002.htm#BGBEGAEA">About Mapping Files</a></li>
<li><a href="appdeployment002.htm#BGBHFFAG">About Managed Classes</a></li>
<li><a href="appdeployment002.htm#BGBBEFAC">About Vendor Properties</a></li>
<li><a href="appdeployment002.htm#BGBDCBJJ">About the Deployment Classpath</a></li>
<li><a href="appdeployment002.htm#BGBJGHBG">About Persistence Unit Packaging Options</a></li>
<li><a href="appdeployment002.htm#BGBCJBGD">About the Persistence Unit Scope</a></li>
</ul>
</li>
<li><a href="appdeployment003.htm#CHDFIJFG">Integrating Clustering</a></li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="descriptors.htm#CHECEAAE"><span class="secnum">6</span> Understanding Descriptors</a></font></h2>
<ul style="list-style-type:none">
<li><a href="descriptors001.htm#CHEBFJEC">Common Descriptor Concepts</a>
<ul style="list-style-type:none">
<li><a href="descriptors001.htm#CHEJJGIE">Descriptor Architecture</a></li>
<li><a href="descriptors001.htm#CHEEDJEH">Descriptors and Inheritance</a>
<ul style="list-style-type:none">
<li><a href="descriptors001.htm#CHEEIAEA">Specifying a Class Indicator</a></li>
<li><a href="descriptors001.htm#CHECJEGE">Inheritance and Primary Keys</a></li>
<li><a href="descriptors001.htm#CHEJGFGH">Single and Multi-Table Inheritance</a></li>
<li><a href="descriptors001.htm#CHEEDCIJ">Aggregate and Composite Descriptors and Inheritance</a></li>
</ul>
</li>
<li><a href="descriptors001.htm#CHEIIIBJ">Descriptors and Aggregation</a></li>
<li><a href="descriptors001.htm#CACGEBJF">Descriptor Customization</a></li>
<li><a href="descriptors001.htm#CHEIGIHG">Amendment and After-Load Methods</a></li>
<li><a href="descriptors001.htm#CHEDDDJF">Descriptor Event Manager</a></li>
</ul>
</li>
<li><a href="descriptors002.htm#CHDIJDHB">Object-Relational Descriptor Concepts</a>
<ul style="list-style-type:none">
<li><a href="descriptors002.htm#CHEJJCCG">Fetch Groups</a>
<ul style="list-style-type:none">
<li><a href="descriptors002.htm#sthref34">AttributeGroup Types and Operations</a></li>
<li><a href="descriptors002.htm#CHDCHCHI">FetchGroup</a></li>
<li><a href="descriptors002.htm#CHDBHDBG">Default FetchGroup</a></li>
<li><a href="descriptors002.htm#CHDDIGEH">Named FetchGroup</a></li>
<li><a href="descriptors002.htm#CHDHFEIB">Full FetchGroup</a></li>
<li><a href="descriptors002.htm#CHDFADCE">Load/LoadAll with FetchGroup</a></li>
<li><a href="descriptors002.htm#CHDJHHGD">LoadGroup</a></li>
<li><a href="descriptors002.htm#CHDCJDIE">CopyGroup</a></li>
<li><a href="descriptors002.htm#CHDIIBAJ">Merging</a></li>
</ul>
</li>
<li><a href="descriptors002.htm#CHEFCCBD">Descriptor Query Manager</a></li>
<li><a href="descriptors002.htm#CHECGEFD">Descriptors and Sequencing</a></li>
<li><a href="descriptors002.htm#CHEEEIEA">Descriptors and Locking</a>
<ul style="list-style-type:none">
<li><a href="descriptors002.htm#CIHJCGBA">Optimistic Version Locking Policies</a></li>
<li><a href="descriptors002.htm#CIHCFBJG">Pessimistic Locking Policies</a></li>
<li><a href="descriptors002.htm#BCGDJHAF">Applying Locking in an Application</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="descriptors003.htm#CHDHJDAD">Object-XML Descriptor Concepts</a>
<ul style="list-style-type:none">
<li><a href="descriptors003.htm#CHEIGDGI">Default Root Element</a></li>
</ul>
</li>
<li><a href="descriptors004.htm#CHEBICFH">Descriptor API</a></li>
</ul>
<h2><a href="mappingintro.htm#CHDFEJIJ"><font face="arial, helvetica, sans-serif"><span class="secnum">7</span> Understanding Mappings</font></a></h2>
<ul style="list-style-type:none">
<li><a href="mappingintro001.htm#CHDGIHEJ">Common Mapping Concepts</a>
<ul style="list-style-type:none">
<li><a href="mappingintro001.htm#CHDEDGDF">Mapping Architecture</a></li>
<li><a href="mappingintro001.htm#CHDGGFCH">Mapping Examples</a></li>
<li><a href="mappingintro001.htm#CEGBCJAG">Using Lazy Loading</a></li>
<li><a href="mappingintro001.htm#CHDJJHJD">Mapping Converters and Transformers</a>
<ul style="list-style-type:none">
<li><a href="mappingintro001.htm#BABHCBJA">Serialized Object Converter</a></li>
<li><a href="mappingintro001.htm#BABEHFGH">Type Conversion Converter</a></li>
<li><a href="mappingintro001.htm#BABBCAIH">Object Type Converter</a></li>
<li><a href="mappingintro001.htm#CHDIHCJF">Transformation Mappings</a></li>
</ul>
</li>
<li><a href="mappingintro001.htm#CHDDBJJJ">Transformation Mapping</a></li>
</ul>
</li>
<li><a href="mappingintro002.htm#CEGDCCDH">Object-Relational Mapping Concepts</a>
<ul style="list-style-type:none">
<li><a href="mappingintro002.htm#CHDJAHDC">Indirection (Lazy Loading)</a></li>
<li><a href="mappingintro002.htm#CEGHBHEA">Value Holder Indirection</a></li>
<li><a href="mappingintro002.htm#CEGGCCGA">Transparent Indirection</a></li>
<li><a href="mappingintro002.htm#CEGDCAIG">Proxy Indirection</a>
<ul style="list-style-type:none">
<li><a href="mappingintro002.htm#CEGGDDJB">Proxy Indirection Restrictions</a></li>
</ul>
</li>
<li><a href="mappingintro002.htm#CHDBJGII">Weaved Indirection</a></li>
<li><a href="mappingintro002.htm#CHDJIGEI">Indirection and JPA</a></li>
<li><a href="mappingintro002.htm#CHDEEIBD">Indirection, Serialization, and Detachment</a></li>
</ul>
</li>
<li><a href="mappingintro003.htm#CEGEJJGJ">Object-XML Mapping Concepts</a>
<ul style="list-style-type:none">
<li><a href="mappingintro003.htm#BABGAAIA">Simple Type Translation</a>
<ul style="list-style-type:none">
<li><a href="mappingintro003.htm#BABFEHDE">Default Read Conversions</a></li>
<li><a href="mappingintro003.htm#BABEEDGD">Default Write Conversions</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="mappingintro004.htm#CEGBADEF">Object-JSON Mapping Concepts</a></li>
<li><a href="mappingintro005.htm#A7964325">About JPA Mapping Types</a>
<ul style="list-style-type:none">
<li><a href="mappingintro005.htm#CEGGDAJJ">Basic Mappings</a></li>
<li><a href="mappingintro005.htm#CEGJFEAH">Default Conversions and Converters</a></li>
<li><a href="mappingintro005.htm#CEGGABIA">Collection Mappings</a>
<ul style="list-style-type:none">
<li><a href="mappingintro005.htm#CEGIGCIJ">One-to-Many Mapping</a></li>
<li><a href="mappingintro005.htm#CEGJCHEB">Many-to-Many Mapping</a></li>
</ul>
</li>
<li><a href="mappingintro005.htm#CEGDIIIB">Using Optimistic Locking</a>
<ul style="list-style-type:none">
<li><a href="mappingintro005.htm#sthref56">Optimistic Locking in a Stateless Environment</a></li>
<li><a href="mappingintro005.htm#sthref57">Optimistic Version Locking</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2><a href="data_access.htm#CHDJBDEA"><font face="arial, helvetica, sans-serif"><span class="secnum">8</span> Understanding Data Access</font></a></h2>
<ul style="list-style-type:none">
<li><a href="data_access001.htm#CHDBIBBJ">About Externally Managed Transactional Data Sources</a></li>
<li><a href="data_access002.htm#CHDFIDBC">About Data Source Login Types</a></li>
<li><a href="data_access003.htm#CHDIICCF">About Data Source Platform Types</a></li>
<li><a href="data_access004.htm#CHDBFFGG">About Authentication</a>
<ul style="list-style-type:none">
<li><a href="data_access004.htm#CHDEIDHF">Simple JDBC Authentication</a></li>
<li><a href="data_access004.htm#CHDFACHD">Oracle Database Proxy Authentication</a></li>
<li><a href="data_access004.htm#CHDFCJDB">Auditing</a></li>
</ul>
</li>
<li><a href="data_access005.htm#CHDJBIGE">About Connections</a></li>
<li><a href="data_access006.htm#CHDBGIHH">About Connection Pools</a>
<ul style="list-style-type:none">
<li><a href="data_access006.htm#CHDHEIJE">Internal Connection Pools</a></li>
<li><a href="data_access006.htm#CHDCAIEJ">External Connection Pools</a></li>
<li><a href="data_access006.htm#CHDJGAJE">Default (Write) and Read Connection Pools</a></li>
<li><a href="data_access006.htm#CHDEFJHH">Sequence Connection Pools</a></li>
<li><a href="data_access006.htm#CHDDGHGA">Application-Specific Connection Pools</a></li>
</ul>
</li>
<li><a href="data_access007.htm#A1104999">About Data Partitioning Policies</a></li>
<li><a href="data_access008.htm#A1105020">About Clustered Databases and Oracle RAC</a></li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="cache.htm#CDEFHHEH"><span class="secnum">9</span> Understanding Caching</a></font></h2>
<ul style="list-style-type:none">
<li><a href="cache001.htm#CHECCJJD">About Cache Architecture</a>
<ul style="list-style-type:none">
<li><a href="cache001.htm#CACHIFGC">Persistence Unit Cache</a></li>
<li><a href="cache001.htm#sthref59">Persistence Context Cache</a>
<ul style="list-style-type:none">
<li><a href="cache001.htm#sthref60">Application Managed Persistence Contexts</a></li>
<li><a href="cache001.htm#sthref61">Container Managed Persistence Contexts</a></li>
</ul>
</li>
<li><a href="cache001.htm#CDEEGICF">Shared, Isolated, Protected, Weak, and Read-only Caches</a>
<ul style="list-style-type:none">
<li><a href="cache001.htm#CDEBIHCH">Isolated Cache</a></li>
<li><a href="cache001.htm#CDEEIBAC">Shared Cache</a></li>
<li><a href="cache001.htm#CDEHCDJD">Protected Cache</a></li>
<li><a href="cache001.htm#CDEJAHDJ">Weak Reference Mode</a></li>
<li><a href="cache001.htm#sthref62">Read-Only Entities</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="cache002.htm#CHEFCFEG">About Cache Type and Size</a>
<ul style="list-style-type:none">
<li><a href="cache002.htm#CHEHGEEB">FULL Cache Type</a></li>
<li><a href="cache002.htm#CHEGIBAC">WEAK Cache Type</a></li>
<li><a href="cache002.htm#CACHBJGE">SOFT Cache Type</a></li>
<li><a href="cache002.htm#CHEJDCBH">SOFT_CACHE and HARD_CACHE Cache Type</a></li>
<li><a href="cache002.htm#CHEEBFCI">NONE and CACHE</a></li>
<li><a href="cache002.htm#sthref64">Guidelines for Configuring the Cache and Identity Maps</a>
<ul style="list-style-type:none">
<li><a href="cache002.htm#CDEJFBEH">About the Internals of Weak, Soft, and Hard Cache Types</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="cache003.htm#CHEGBAJC">About Queries and the Cache</a></li>
<li><a href="cache004.htm#CHEEACDJ">About Handling Stale Data</a>
<ul style="list-style-type:none">
<li><a href="cache004.htm#CHEIDFII">Configuring a Locking Policy</a>
<ul style="list-style-type:none">
<li><a href="cache004.htm#BABDIIJF">Optimistic Locking</a></li>
<li><a href="cache004.htm#BABICDEB">Pessimistic Locking</a></li>
</ul>
</li>
<li><a href="cache004.htm#CHEJJGCE">Configuring the Cache on a Per-Class Basis</a></li>
<li><a href="cache004.htm#CHEHAIIB">Forcing a Cache Refresh when Required on a Per-Query Basis</a></li>
<li><a href="cache004.htm#CHEFBGEH">Configuring Cache Invalidation</a></li>
<li><a href="cache004.htm#CHEHIABF">Configuring Cache Coordination</a></li>
</ul>
</li>
<li><a href="cache005.htm#i1128663">About Explicit Query Refreshes</a>
<ul style="list-style-type:none">
<li><a href="cache005.htm#sthref65">Refresh Policy</a></li>
</ul>
</li>
<li><a href="cache006.htm#CHEEHFCI">About Cache Expiration and Invalidation</a>
<ul style="list-style-type:none">
<li><a href="cache006.htm#sthref66">Advanced Cache Invalidation</a></li>
</ul>
</li>
<li><a href="cache007.htm#A8003897">About Cache Indexes</a></li>
<li><a href="cache008.htm#CDEBGAHD">About Query Results Cache</a></li>
<li><a href="cache009.htm#CHEFHDAJ">About Cache Locking and Transaction Isolation</a></li>
<li><a href="cache010.htm#CHEECFJE">About Cache Optimization</a></li>
<li><a href="cache011.htm#CDEIBJCE">About Cache Coordination</a>
<ul style="list-style-type:none">
<li><a href="cache011.htm#CDEDBJCJ">When to Use Cache Coordination</a></li>
<li><a href="cache011.htm#CDEECFJH">Coordinated Cache Architecture and Types</a>
<ul style="list-style-type:none">
<li><a href="cache011.htm#CDEJABGH">JMS Coordinated Cache</a></li>
<li><a href="cache011.htm#CDEGHFJA">RMI Coordinated Cache</a></li>
</ul>
</li>
<li><a href="cache011.htm#CDEECFJG">Custom Coordinated Cache</a></li>
<li><a href="cache011.htm#CDEGDGAA">Coordinated Cache and Clustering</a>
<ul style="list-style-type:none">
<li><a href="cache011.htm#sthref68">Persistence Property Extensions for Cache Coordination</a></li>
<li><a href="cache011.htm#sthref69">Cache Coordination and Oracle WebLogic</a></li>
<li><a href="cache011.htm#sthref70">Cache Coordination and Glassfish</a></li>
<li><a href="cache011.htm#sthref71">Cache Coordination and IBM WebSphere</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2><a href="queries.htm#CHDGGCJB"><font face="arial, helvetica, sans-serif"><span class="secnum">10</span> Understanding Queries</font></a></h2>
<ul style="list-style-type:none">
<li><a href="queries001.htm#CACIGEIH">Query Concepts</a>
<ul style="list-style-type:none">
<li><a href="queries001.htm#CACJBFHJ">Call Objects</a></li>
<li><a href="queries001.htm#CACFBJBF">DatabaseQuery Objects</a></li>
<li><a href="queries001.htm#CACIAFDF">Data-Level and Object-Level Queries</a></li>
<li><a href="queries001.htm#CACJGHBC">Summary Queries</a></li>
<li><a href="queries001.htm#CACDCDFD">Descriptor Query Manager</a></li>
<li><a href="queries001.htm#CACFIEIB">EclipseLink Expressions</a></li>
<li><a href="queries001.htm#CACJAEDA">Query Keys</a></li>
</ul>
</li>
<li><a href="queries002.htm#CHDJHGFI">About JPQL Queries</a>
<ul style="list-style-type:none">
<li><a href="queries002.htm#sthref72">Select Queries</a>
<ul style="list-style-type:none">
<li><a href="queries002.htm#sthref73">SELECT Clause</a></li>
<li><a href="queries002.htm#sthref76">FROM Clause</a></li>
<li><a href="queries002.htm#sthref82">ORDER BY clause</a></li>
<li><a href="queries002.htm#sthref83">GROUP BY Clause</a></li>
<li><a href="queries002.htm#sthref84">HAVING Clause</a></li>
<li><a href="queries002.htm#sthref85">UNION</a></li>
</ul>
</li>
<li><a href="queries002.htm#sthref86">WHERE Clause</a></li>
<li><a href="queries002.htm#sthref87">Update Queries</a></li>
<li><a href="queries002.htm#sthref88">Delete Queries</a></li>
<li><a href="queries002.htm#sthref89">Parameters</a>
<ul style="list-style-type:none">
<li><a href="queries002.htm#sthref90">Literals</a></li>
</ul>
</li>
<li><a href="queries002.htm#sthref91">Functions</a></li>
<li><a href="queries002.htm#sthref92">EclipseLink Special Operators</a></li>
<li><a href="queries002.htm#sthref93">EclipseLink Extensions</a></li>
</ul>
</li>
<li><a href="queries003.htm#CACFDBJD">About SQL Query Language</a></li>
<li><a href="queries004.htm#A7714964">About the Criteria API</a>
<ul style="list-style-type:none">
<li><a href="queries004.htm#sthref94">CriteriaBuilder</a></li>
<li><a href="queries004.htm#sthref95">CriteriaQuery</a></li>
<li><a href="queries004.htm#sthref96">Where</a></li>
<li><a href="queries004.htm#sthref97">Subquery</a></li>
<li><a href="queries004.htm#sthref98">Parameters</a></li>
<li><a href="queries004.htm#sthref99">Functions</a></li>
<li><a href="queries004.htm#sthref100">Special Operations</a></li>
<li><a href="queries004.htm#CHDBFDED">Metamodel</a></li>
<li><a href="queries004.htm#CHDGAAIC">Tuple Queries</a></li>
<li><a href="queries004.htm#sthref101">JpaCriteriaBuilder and EclipseLink Extensions</a></li>
</ul>
</li>
<li><a href="queries005.htm#A7724128">About Native SQL Queries</a>
<ul style="list-style-type:none">
<li><a href="queries005.htm#sthref102">Parameters</a></li>
<li><a href="queries005.htm#sthref103">Named Native SQL Queries</a></li>
<li><a href="queries005.htm#sthref104">SQL Result Set Mapping</a></li>
</ul>
</li>
<li><a href="queries006.htm#CHDFHBJD">About Advanced Native Query Support</a></li>
<li><a href="queries007.htm#A7725420">About JPA Query Hints</a></li>
<li><a href="queries008.htm#A7736691">About Query Casting</a>
<ul style="list-style-type:none">
<li><a href="queries008.htm#sthref105">JPA 2.0 Type</a></li>
<li><a href="queries008.htm#sthref106">Downcasting in JPQL</a></li>
<li><a href="queries008.htm#sthref107">JPA Criteria API</a></li>
<li><a href="queries008.htm#sthref108">EclipseLink Expression Support for Downcast</a></li>
</ul>
</li>
<li><a href="queries009.htm#CACHGGDB">About Oracle Extensions for Queries</a>
<ul style="list-style-type:none">
<li><a href="queries009.htm#CACJAJFH">Query Hints</a></li>
<li><a href="queries009.htm#CACDIJHF">Hierarchical Queries</a></li>
<li><a href="queries009.htm#CACCJIGE">Flashback Queries</a></li>
<li><a href="queries009.htm#CACDDIDI">Stored Functions</a></li>
</ul>
</li>
</ul>
<h2><a href="expressions.htm#CHDCAIGD"><font face="arial, helvetica, sans-serif"><span class="secnum">11</span> Understanding EclipseLink Expressions</font></a></h2>
<ul style="list-style-type:none">
<li><a href="expressions001.htm#CJACHEAD">About the Expression Framework</a>
<ul style="list-style-type:none">
<li><a href="expressions001.htm#sthref109">Comparing Expressions to SQL</a></li>
</ul>
</li>
<li><a href="expressions002.htm#CJAJIGEE">About Expression Components</a>
<ul style="list-style-type:none">
<li><a href="expressions002.htm#CJABDJIC">Boolean Logic</a></li>
<li><a href="expressions002.htm#CJAEGFGE">Database Functions and Operators</a>
<ul style="list-style-type:none">
<li><a href="expressions002.htm#sthref110">Database Functions</a></li>
<li><a href="expressions002.htm#sthref111">Database Operators</a></li>
<li><a href="expressions002.htm#CJAGCJAI">Mathematical Functions</a></li>
<li><a href="expressions002.htm#CJADHIHG">XMLType Functions</a></li>
</ul>
</li>
<li><a href="expressions002.htm#CJAGJAGI">Platform and User-Defined Functions</a></li>
<li><a href="expressions002.htm#CJAGEJBC">Expressions for One-to-One and Aggregate Object Relationships</a></li>
<li><a href="expressions002.htm#CJAIJIIF">Expressions for Joining and Complex Relationships</a>
<ul style="list-style-type:none">
<li><a href="expressions002.htm#CJABCJII">About Joins</a></li>
<li><a href="expressions002.htm#CJAJIHBJ">Using EclipseLink Expression API for Joins</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="nosql.htm#BJEIGBFD"><span class="secnum">12</span> Understanding Non-relational Data Sources</a></font></h2>
<ul style="list-style-type:none">
<li><a href="nosql001.htm#BJEIHEJG">NoSQL Platform Concepts</a></li>
<li><a href="nosql002.htm#BJEIIHIG">About NoSQL Persistence Units</a>
<ul style="list-style-type:none">
<li><a href="nosql002.htm#sthref113">Persistence Unit Properties for NoSQL Platforms</a></li>
</ul>
</li>
<li><a href="nosql003.htm#BJEEAGCG">About JPA Applications on the NoSQL Platform</a>
<ul style="list-style-type:none">
<li><a href="nosql003.htm#sthref114">Mapping Restrictions on JPA Annotations</a></li>
</ul>
</li>
<li><a href="nosql004.htm#BJEDCHIJ">About Mapping NoSQL Objects</a></li>
<li><a href="nosql005.htm#BJECCHBC">About Queries and the NoSQL Platform</a></li>
<li><a href="nosql006.htm#BJECGBHH">About Transactions and the NoSQL Platform</a></li>
</ul>
<h2><font face="arial, helvetica, sans-serif"><a href="monitoring.htm#BABHHIEG"><span class="secnum">13</span> Understanding Performance Monitoring and Profiling</a></font></h2>
<ul style="list-style-type:none">
<li><a href="monitoring001.htm#BABHAEHA">Performance Profiling</a></li>
<li><a href="monitoring002.htm#BABFEJFJ">Fetch Group Monitoring</a></li>
<li><a href="monitoring003.htm#BABJABIH">Performance Monitoring</a></li>
<li><a href="monitoring004.htm#BABDFAFJ">Query Monitoring</a></li>
</ul>
<h2><a href="app_tl_ext.htm#sthref115"><font face="arial, helvetica, sans-serif"><span class="secnum">A</span> Database and Application Server Support</font></a></h2>
<ul style="list-style-type:none">
<li><a href="app_tl_ext001.htm#A1095976">Database Support</a></li>
<li><a href="app_tl_ext002.htm#A1115041">Application Server Support</a>
<ul style="list-style-type:none">
<li><a href="app_tl_ext002.htm#sthref118">EclipseLink MOXy as the JAXB Provider for Application Servers</a></li>
</ul>
</li>
<li><a href="app_tl_ext003.htm#CJAECHBD">Non-SQL Standard Database Support: NoSQL</a></li>
</ul>
</div>
<!-- class="ind" -->
<!-- Start Footer -->
<div class="footer">
<hr />
<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%">
<col width="33%" />
<col width="*" />
<col width="33%" />
<tr>
<td valign="bottom">
<table class="navigation simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100" align="center">
<col width="*" />
<col width="48%" />
<col width="48%" />
<tr>
<td>&nbsp;</td>
<td align="center"><a href="loe.htm"><img src="../../dcommon/images/rarrow.png" alt="Next" border="0" height="16" width="16" /></a></td>
</tr>
</table>
</td>
<td align="center" width="34%"><a href="http://www.eclipse.org/eclipselink/" title="EclipseLink home"><img src="../../dcommon/images/ellogo.png" alt="EclipseLink" width="150" border="0" /></a><br />
<td valign="bottom" align="right">
<table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="225">
<tr>
<td>&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<!-- class="footer" -->
<div id="copyright">Copyright &copy; 2012 by The Eclipse Foundation under the <a href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License (EPL)</a><br /> <script type="text/javascript">var LastUpdated = document.lastModified;document.writeln ("Updated: " + LastUpdated);</script> </div><!-- START: Analytics --><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-1608008-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script><!-- END: Analytics --><!-- START: Sharethis --><script>var options={ "publisher": "e2fe9e07-fab6-4f84-83ea-0991b429842c", "position": "right", "ad": { "visible": false, "openDelay": 5, "closeDelay": 0}};var st_hover_widget = new sharethis.widgets.hoverbuttons(options);</script><!-- END: Sharethis --></body>
</html>