blob: 123e3d318a1f3c621593697fc47376330edfd060 [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>OPERATOR | EclipseLink 2.5.x Java Persistence API (JPA) Extensions Reference</title>
<meta name="generator" content="Oracle DARB XHTML Converter (Mode = document) - Version 1.0.17" />
<meta name="date" content="2013-10-03T12:33:25Z" />
<meta name="robots" content="noarchive" />
<meta name="doctitle" content="OPERATOR" />
<meta name="relnum" content="Release 2.5" />
<link rel="stylesheet" type="text/css" href="../../../dcommon/style.css" media="screen" />
<link rel="copyright" href="http://www.eclipse.org/org/documents/epl-v10.php" 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="j_on.htm" title="Previous" type="text/html" />
<link rel="next" href="j_regexp.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:4sqnhke2any', 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">Java Persistence API (JPA) Extensions Reference for EclipseLink,
<b>Release 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>
<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 />
<span class="mini">Contents</span></a></td><td>&nbsp;</td><td align="center"><a href="../../../" target="_top" class="external text" title="Other searches" rel="nofollow"><img src="../../../dcommon/images/search.png" alt="Search" style="border:0;" /><br /><span class="mini">Other&nbsp;Searches</span></a></td><td>&nbsp;</td><td align="center"><a href="../../eclipselink_jpa_extensions.pdf" title="PDF" target="_blank"><img src="../../../dcommon/images/pdf_icon.png" style="padding-right:5px;border:0" alt="PDF"><br /><span class="mini">PDF</span></a></td><td align="center"><a href="#disqus_thread" title="Comments""><img src="../../../dcommon/images/comments.png" style="padding-right:5px;border:0" alt="Comments"><br /><span class="mini">Comments</span></a>
</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="j_on.htm"><img src="../../../dcommon/images/larrow.png" alt="Previous" border="0" height="16" width="16" /></a></td>
<td align="center"><a href="j_regexp.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 --><a id="operator" name="operator"></a><a id="TLJPA622" name="TLJPA622"></a>
<hr />
<div class="refsect1">
<h2 class="refsect1"><font face="arial, helvetica, sans-serif" color="#330099">OPERATOR</font></h2>
<p>Use <code>OPERATION</code> to call any EclipseLink operator.</p>
<a id="sthref482" name="sthref482"></a>
<p><strong><br /><span class="refsubsect">Usage</span></strong></p>
<p>EclipseLink supports many database functions using standard operator names that are translated to different databases. EclipseLink operators are supported on any database that has an equivalent function (or set of functions). Use the EclipseLink <code>ExpressionOperator</code> class to define a custom operator or allow <code>DatabasePlatform</code> to override an operator..</p>
<p><code>OPERATOR</code> is similar to <code><a href="j_func.htm#func">FUNCTION</a></code>, but allows the function to be database independent, and you can call functions that require special syntax.</p>
<p>The supported EclipseLink operators include:</p>
<ul>
<li>
<p>Abs</p>
</li>
<li>
<p>ToUpperCase</p>
</li>
<li>
<p>ToLowerCase</p>
</li>
<li>
<p>Chr</p>
</li>
<li>
<p>Concat</p>
</li>
<li>
<p>Coalesce</p>
</li>
<li>
<p>Case</p>
</li>
<li>
<p>HexToRaw</p>
</li>
<li>
<p>Initcap</p>
</li>
<li>
<p>Instring</p>
</li>
<li>
<p>Soundex</p>
</li>
<li>
<p>LeftPad</p>
</li>
<li>
<p>LeftTrim</p>
</li>
<li>
<p>RightPad</p>
</li>
<li>
<p>RightTrim</p>
</li>
<li>
<p>Substring</p>
</li>
<li>
<p>Translate</p>
</li>
<li>
<p>Ascii</p>
</li>
<li>
<p>Length</p>
</li>
<li>
<p>CharIndex</p>
</li>
<li>
<p>Cast</p>
</li>
<li>
<p>Extract</p>
</li>
<li>
<p>CharLength</p>
</li>
<li>
<p>Difference</p>
</li>
<li>
<p>Reverse</p>
</li>
<li>
<p>Replicate</p>
</li>
<li>
<p>Right</p>
</li>
<li>
<p>Locate</p>
</li>
<li>
<p>ToNumber</p>
</li>
<li>
<p>ToChar</p>
</li>
<li>
<p>AddMonths</p>
</li>
<li>
<p>DateToString</p>
</li>
<li>
<p>MonthsBetween</p>
</li>
<li>
<p>NextDay</p>
</li>
<li>
<p>RoundDate</p>
</li>
<li>
<p>AddDate</p>
</li>
<li>
<p>DateName</p>
</li>
<li>
<p>DatePart</p>
</li>
<li>
<p>DateDifference</p>
</li>
<li>
<p>TruncateDate</p>
</li>
<li>
<p>NewTime</p>
</li>
<li>
<p>Nvl</p>
</li>
<li>
<p>NewTime</p>
</li>
<li>
<p>Ceil</p>
</li>
<li>
<p>Cos</p>
</li>
<li>
<p>Cosh</p>
</li>
<li>
<p>Acos</p>
</li>
<li>
<p>Asin</p>
</li>
<li>
<p>Atan</p>
</li>
<li>
<p>Exp</p>
</li>
<li>
<p>Sqrt</p>
</li>
<li>
<p>Floor</p>
</li>
<li>
<p>Ln</p>
</li>
<li>
<p>Log</p>
</li>
<li>
<p>Mod</p>
</li>
<li>
<p>Power</p>
</li>
<li>
<p>Round</p>
</li>
<li>
<p>Sign</p>
</li>
<li>
<p>Sin</p>
</li>
<li>
<p>Sinh</p>
</li>
<li>
<p>Tan</p>
</li>
<li>
<p>Tanh</p>
</li>
<li>
<p>Trunc</p>
</li>
<li>
<p>Greatest</p>
</li>
<li>
<p>Least</p>
</li>
<li>
<p>Add</p>
</li>
<li>
<p>Subtract</p>
</li>
<li>
<p>Divide</p>
</li>
<li>
<p>Multiply</p>
</li>
<li>
<p>Atan2</p>
</li>
<li>
<p>Cot</p>
</li>
<li>
<p>Deref</p>
</li>
<li>
<p>Ref</p>
</li>
<li>
<p>RefToHex</p>
</li>
<li>
<p>Value</p>
</li>
<li>
<p>ExtractXml</p>
</li>
<li>
<p>ExtractValue</p>
</li>
<li>
<p>ExistsNode</p>
</li>
<li>
<p>GetStringVal</p>
</li>
<li>
<p>GetNumberVal</p>
</li>
<li>
<p>IsFragment</p>
</li>
<li>
<p>SDO_WITHIN_DISTANCE</p>
</li>
<li>
<p>SDO_RELATE</p>
</li>
<li>
<p>SDO_FILTER</p>
</li>
<li>
<p>SDO_NN</p>
</li>
<li>
<p>NullIf</p>
</li>
</ul>
<a id="sthref483" name="sthref483"></a>
<p><strong><br /><span class="refsubsect">Examples</span></strong></p>
<p><a href="#BGBGIAEE">Example 3-10</a> shows how to use this JPQL extension.</p>
<div class="example"><a id="BGBGIAEE" name="BGBGIAEE"></a><a id="TLJPA623" name="TLJPA623"></a>
<p><strong><em><font face="arial, helvetica, sans-serif">Example 3-10 Using OPERATOR EQL</font></em></strong></p>
<pre xml:space="preserve" class="oac_no_warn">
SELECT e FROM Employee e WHERE OPERATOR('ExtractXml', e.resume, '@years-experience') &gt; 10
</pre></div>
<!-- class="example" -->
<a id="sthref484" name="sthref484"></a>
<p><strong><br /><span class="refsubsect">See Also</span></strong></p>
<p>For more information, see:</p>
<ul>
<li>
<p><a href="j_func.htm#func">"FUNCTION"</a></p>
</li>
<li>
<p>"JPQL"<br />
<code><a href="http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL">http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL</a></code></p>
</li>
</ul>
</div>
<!-- class="refsect1" --></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="j_on.htm"><img src="../../../dcommon/images/larrow.png" alt="Previous" border="0" height="16" width="16" /></a></td>
<td align="center"><a href="j_regexp.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>
<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 />
<span class="mini">Contents</span></a></td><td>&nbsp;</td><td align="center"><a href="../../../" target="_top" class="external text" title="Other searches" rel="nofollow"><img src="../../../dcommon/images/search.png" alt="Search" style="border:0;" /><br /><span class="mini">Other&nbsp;Searches</span></a></td><td>&nbsp;</td><td align="center"><a href="../../eclipselink_jpa_extensions.pdf" title="PDF" target="_blank"><img src="../../../dcommon/images/pdf_icon.png" style="padding-right:5px;border:0" alt="PDF"><br /><span class="mini">PDF</span></a></td><td align="center"><a href="#disqus_thread" title="Comments""><img src="../../../dcommon/images/comments.png" style="padding-right:5px;border:0" alt="Comments"><br /><span class="mini">Comments</span></a>
</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 --><!-- START: Disqus --><div id="disqus_thread"></div> <script type="text/javascript"> var disqus_developer = 1;var disqus_shortname = 'eclipselinkdoc'; (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); </script> <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> <a href="http://disqus.com" class="dsq-brlink">Comments powered by <span class="logo-disqus">Disqus</span></a><!-- END: Disqus --></body>
</html>