blob: 2b54fcb81aeeb90dfccde8eee2f6620766a68df8 [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>Non-SQL Standard Database Support: NoSQL | EclipseLink 3.0.x Understanding EclipseLink</title>
<meta name="generator" content="Oracle DARB XHTML Converter (Mode = document) - Version 1.0.22 Build 1" />
<meta name="date" content="2014-06-10T10:39:53Z" />
<meta name="robots" content="noarchive" />
<meta name="doctitle" content="Non-SQL Standard Database Support: NoSQL" />
<meta name="relnum" content="3.0" />
<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="prev" href="app_tl_ext002.htm" title="Previous" 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>3.0</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>
<td align="center" valign="top"><a href="toc.htm"><img src="../../dcommon/images/contents.png" alt="Go To Table Of Contents" border="0" height="16" width="16" /><br />
</td><td>&nbsp;</td><td align="center"><a href="../../" target="_top" class="external text" title="Search" rel="nofollow"><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;border:0" alt="PDF"></a></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="app_tl_ext002.htm"><img src="../../dcommon/images/larrow.png" alt="Previous" border="0" height="16" width="16" /></a></td>
<td>&nbsp;</td>
</tr>
</table>
</div>
<!-- class="header" -->
<div class="ind"><!-- End Header --><a id="CJAECHBD" name="CJAECHBD"></a><a id="OTLCG94458" name="OTLCG94458"></a>
<div class="sect1"><!-- infolevel="all" infotype="General" -->
<h1 class="sect1"><font face="arial, helvetica, sans-serif" color="#330099">Non-SQL Standard Database Support: NoSQL</font></h1>
<p>EclipseLink JPA can be used with NoSQL databases. A Java class can be mapped to a NoSQL datasource using the <code>@NoSQL</code> annotation or <code>&lt;no-sql&gt;</code> XML element.</p>
<p>EclipseLink also provides JPA access to EIS (Enterprise Information Systems) such as legacy databases and systems (CICS, ADA, VSAM, IMS, MQ, AQ).</p>
<p>EclipseLink's NoSQL support allows complex hierarchical data to be mapped, including XML, indexed, and hierarchical mapped data such as JSON data. CRUD operations, embedded objects and collections, inheritance, and relationships are supported. A subset of JPQL and the Criteria API are supported, dependent on the NoSQL database's query support.</p>
<p>It is also possible to add support for other NoSQL data-sources by defining your own <code>EISPlatform</code> subclass and JCA adapter. There are also several user-contributed platforms in the EclipseLink incubator project. See "Platform Incubator" at this URL:</p>
<p><code><a href="http://wiki.eclipse.org/EclipseLink/Development/Incubator/Platform">http://wiki.eclipse.org/EclipseLink/Development/Incubator/Platform</a></code></p>
<p><a href="#CJAFHFBJ">Table A-3</a> lists the NoSQL and EIS data-sources that are supported by EclipseLink. For more information on the Java classes listed in the table, see <em>Java API Reference for EclipseLink</em>.</p>
<div class="tblhruleformalwide"><a id="OTLCG94459" name="OTLCG94459"></a><a id="sthref73" name="sthref73"></a><a id="CJAFHFBJ" name="CJAFHFBJ"></a>
<p><strong><em><font face="arial, helvetica, sans-serif">Table A-3 Supported NoSQL and EIS Platforms</font></em></strong></p>
<table class="HRuleFormalWide" title="Supported NoSQL and EIS Platforms" summary="This table describes supported NoSQL data sources. It lists the data source and related Java classes and features." dir="ltr" border="1" width="100%" frame="hsides" rules="rows" cellpadding="3" cellspacing="0">
<col width="16%" />
<col width="32%" />
<col width="*" />
<thead>
<tr align="left" valign="top">
<th align="left" valign="bottom" id="r1c1-t4"><font face="Arial, Helvetica, sans-serif"><strong>Data-source</strong></font></th>
<th align="left" valign="bottom" id="r1c2-t4"><font face="Arial, Helvetica, sans-serif"><strong>Java Class</strong></font></th>
<th align="left" valign="bottom" id="r1c3-t4"><font face="Arial, Helvetica, sans-serif"><strong>Features</strong></font></th>
</tr>
</thead>
<tbody>
<tr align="left" valign="top">
<td align="left" id="r2c1-t4" headers="r1c1-t4">
<p>MongoDB</p>
</td>
<td align="left" headers="r2c1-t4 r1c2-t4">
<p><code>org.eclipse.persistence.nosql.adapters.mongo.MongoPlatform</code></p>
</td>
<td align="left" headers="r2c1-t4 r1c3-t4">
<p>Provides MongoDB support including:</p>
<ul>
<li>
<p><code>MAPPED</code> JSON data</p>
</li>
<li>
<p>JPQL and Criteria queries</p>
</li>
<li>
<p>Native queries</p>
</li>
<li>
<p>hints for <code>READ_PREFERENCE</code>, <code>WRITE_CONCERN</code>, <code>OPTIONS</code>, <code>SKIP</code>, <code>LIMIT</code>, <code>BATCH_SIZE</code></p>
</li>
</ul>
</td>
</tr>
<tr align="left" valign="top">
<td align="left" id="r3c1-t4" headers="r1c1-t4">
<p>Oracle NoSQL</p>
</td>
<td align="left" headers="r3c1-t4 r1c2-t4">
<p><code>org.eclipse.persistence.nosql.adapters.nosql.OracleNoSQLPlatform</code></p>
</td>
<td align="left" headers="r3c1-t4 r1c3-t4">
<p>Provides Oracle NoSQL support including:</p>
<ul>
<li>
<p><code>MAPPED</code> key/value data</p>
</li>
<li>
<p>XML data</p>
</li>
<li>
<p><code>find()</code> and <code>SELECT</code> all queries</p>
</li>
<li>
<p>hints for <code>CONSISTENCY</code>, <code>DURABILITY</code>, <code>TIMEOUT</code>, <code>VERSION</code></p>
</li>
</ul>
</td>
</tr>
<tr align="left" valign="top">
<td align="left" id="r4c1-t4" headers="r1c1-t4">
<p>XML files</p>
</td>
<td align="left" headers="r4c1-t4 r1c2-t4">
<p><code>org.eclipse.persistence.eis.adapters.xmlfile.XMLFilePlatform</code></p>
</td>
<td align="left" headers="r4c1-t4 r1c3-t4">
<p>Provides support for persistence to XML file including:</p>
<ul>
<li>
<p>XML data</p>
</li>
<li>
<p><code>find()</code> and <code>SELECT</code> all queries</p>
</li>
<li>
<p>XPath interactions</p>
</li>
</ul>
</td>
</tr>
<tr align="left" valign="top">
<td align="left" id="r5c1-t4" headers="r1c1-t4">
<p>JMS</p>
</td>
<td align="left" headers="r5c1-t4 r1c2-t4">
<p><code>org.eclipse.persistence.eis.adapters.jms.JMSPlatform</code></p>
</td>
<td align="left" headers="r5c1-t4 r1c3-t4">
<p>Provides support for persistence through JMS messaging:</p>
<ul>
<li>
<p>XML data</p>
</li>
<li>
<p><code>send</code>/<code>receive</code> operations</p>
</li>
</ul>
</td>
</tr>
<tr align="left" valign="top">
<td align="left" id="r6c1-t4" headers="r1c1-t4">
<p>Oracle AQ</p>
</td>
<td align="left" headers="r6c1-t4 r1c2-t4">
<p><code>org.eclipse.persistence.eis.adapters.aq.AQPlatform</code></p>
</td>
<td align="left" headers="r6c1-t4 r1c3-t4">
<p>Provides support for persistence through Oracle AQ messaging:</p>
<ul>
<li>
<p>XML data</p>
</li>
<li>
<p><code>enqueue</code>/<code>dequeue</code> operations</p>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
<br /></div>
<!-- class="tblhruleformalwide" --></div>
<!-- class="sect1" --></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="app_tl_ext002.htm"><img src="../../dcommon/images/larrow.png" alt="Previous" 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>
<td align="center" valign="top"><a href="toc.htm"><img src="../../dcommon/images/contents.png" alt="Go To Table Of Contents" border="0" height="16" width="16" /><br />
</td><td>&nbsp;</td><td align="center"><a href="../../" target="_top" class="external text" title="Search" rel="nofollow"><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;border:0" alt="PDF"></a></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>