⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ejbql5.html

📁 j2eePDF格式的电子书
💻 HTML
📖 第 1 页 / 共 5 页
字号:
</div></td>    <td><a name="wp80181"> </a><div class="pCellBody"><code class="cCode">&#39;bar&#39;</code></div></td></tr>  <tr align="left">    <td><a name="wp80183"> </a><div class="pCellBody"><code class="cCode">address.phone NOT LIKE &#39;12%3&#39;</code></div></td>    <td><a name="wp80185"> </a><div class="pCellBody"><code class="cCode">1234</code></div></td>    <td><a name="wp80187"> </a><div class="pCellBody"><code class="cCode">&#39;123&#39;</code></div><a name="wp80188"> </a><div class="pCellBody"><code class="cCode">&#39;12993&#39;</code></div></td></tr></table></div><p class="pBody"></p><a name="wp80191"> </a><h4 class="pHeading3">NULL Comparison Expressions </h4><a name="wp80192"> </a><p class="pBody">A <code class="cCode">NULL</code> comparison expression tests whether a single-valued path expression or an input parameter has a <code class="cCode">NULL</code> value. Usually, the <code class="cCode">NULL</code> comparison expression is used to test whether or not a single-valued relationship has been set. Here is the syntax of a <code class="cCode">NULL</code> comparison expression:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">null_comparison_expression ::=    {single_valued_path_expression |    input_parameter}<code class="cCodeBold">IS</code> [<code class="cCodeBold">NOT</code> ] <code class="cCodeBold">NULL</code><a name="wp80193"> </a></pre></div><a name="wp80196"> </a><h4 class="pHeading3">Empty Collection Comparison Expressions</h4><a name="wp80197"> </a><p class="pBody">An empty collection comparison expression tests whether a collection-valued path expression has no elements. In other words, it tests whether or not a collection-valued relationship has been set. Here is the syntax:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">empty_collection_comparison_expression ::= &nbsp;&nbsp; collection_valued_path_expression <span style="font-weight: bold">IS</span> [<span style="font-weight: bold">NOT</span>] <span style="font-weight: bold">EMPTY</span><a name="wp80198"> </a></pre></div><a name="wp80199"> </a><p class="pBody">If the collection-valued path expression is <code class="cCode">NULL</code>, then the empty collection comparison expression has a <code class="cCode">NULL</code> value.</p><a name="wp80200"> </a><h4 class="pHeading3">Collection Member Expressions</h4><a name="wp80201"> </a><p class="pBody">The collection member expression determines whether a value is a member of a collection. The value and the collection members must have the same type. The expression syntax follows:</p><div class="pPreformattedRelative"><pre class="pPreformattedRelative">collection_member_expression ::=    {single_valued_cmr_path_expression |    identification_variable | input_parameter}    [<code class="cCodeBold">NOT</code> ] <code class="cCodeBold">MEMBER</code> [<code class="cCodeBold">OF</code> ] collection_valued_path_expression<a name="wp80202"> </a></pre></div><a name="wp80203"> </a><p class="pBody">If either the collection-valued or single-valued path expression is unknown, then the collection member expression is unknown. If the collection-valued path expression designates an empty collection, then the collection member expression is <code class="cCode">FALSE</code>.</p><a name="wp80204"> </a><h4 class="pHeading3">Functional Expressions</h4><a name="wp80207"> </a><p class="pBody">EJB QL includes several string and arithmetic functions, which are listed in the following tables. In <a  href="EJBQL5.html#wp80220">Table 24-4</a>, the <code class="cCode">start</code> and <code class="cCode">length</code> arguments are of type <code class="cCode">int</code>. They designate positions in the <code class="cCode">String</code> argument. The first position in a string is designated by 1. In <a  href="EJBQL5.html#wp80249">Table 24-5</a>, the <code class="cCode">number</code> argument may be either an <code class="cCode">int</code>, a <code class="cCode">float</code>, or a <code class="cCode">double</code>.</p><div align="left"><table border="1" summary="String Expressions" id="wp80220">  <caption><a name="wp80220"> </a><div class="pTableTitle">Table 24-4   String Expressions&nbsp;</div></caption>  <tr align="center">    <th><a name="wp80224"> </a><div class="pCellHeading">Function Syntax</div></th>    <th><a name="wp80226"> </a><div class="pCellHeading">Return Type</div></th></tr>  <tr align="left">    <td><a name="wp81415"> </a><div class="pCellBody"><code class="cCode">CONCAT(String, String)</code></div></td>    <td><a name="wp81417"> </a><div class="pCellBody"><code class="cCode">String</code></div></td></tr>  <tr align="left">    <td><a name="wp81423"> </a><div class="pCellBody"><code class="cCode">LENGTH(String)</code></div></td>    <td><a name="wp81425"> </a><div class="pCellBody"><code class="cCode">int</code></div></td></tr>  <tr align="left">    <td><a name="wp81427"> </a><div class="pCellBody"><code class="cCode">LOCATE(String, String [, start])</code></div></td>    <td><a name="wp81429"> </a><div class="pCellBody"><code class="cCode">int</code></div></td></tr>  <tr align="left">    <td><a name="wp81431"> </a><div class="pCellBody"><code class="cCode">SUBSTRING(String, start, length)</code></div></td>    <td><a name="wp81433"> </a><div class="pCellBody"><code class="cCode">String</code></div></td></tr></table></div><p class="pBody"></p><div align="left"><table border="1" summary="Arithmetic Expressions" id="wp80249">  <caption><a name="wp80249"> </a><div class="pTableTitle">Table 24-5   Arithmetic Expressions&nbsp;</div></caption>  <tr align="center">    <th><a name="wp80253"> </a><div class="pCellHeading">Function Syntax</div></th>    <th><a name="wp80255"> </a><div class="pCellHeading">Return Type</div></th></tr>  <tr align="left">    <td><a name="wp80257"> </a><div class="pCellBody"><code class="cCode">ABS(number)</code></div></td>    <td><a name="wp80259"> </a><div class="pCellBody"><code class="cCode">int</code>, <code class="cCode">float</code>, or <code class="cCode">double</code></div></td></tr>  <tr align="left">    <td><a name="wp81404"> </a><div class="pCellBody"><code class="cCode">MOD(int, int)</code></div></td>    <td><a name="wp81406"> </a><div class="pCellBody"><code class="cCode">int</code></div></td></tr>  <tr align="left">    <td><a name="wp80261"> </a><div class="pCellBody"><code class="cCode">SQRT(double)</code></div></td>    <td><a name="wp80263"> </a><div class="pCellBody"><code class="cCode">double</code></div></td></tr></table></div><p class="pBody"></p><a name="wp80265"> </a><h4 class="pHeading3">NULL Values</h4><a name="wp80266"> </a><p class="pBody">If the target of a reference is not in the persistent store, then the target is <code class="cCode">NULL</code>. For conditional expressions containing <code class="cCode">NULL</code>, EJB QL uses the semantics defined by SQL92. Briefly, these semantics are as follows:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp80268"> </a><div class="pSmartList1"><li>If a comparison or arithmetic operation has an unknown value, it yields a <code class="cCode">NULL</code> value.</li></div><a name="wp81582"> </a><div class="pSmartList1"><li>Two <code class="cCode">NULL</code> values are not equal. Comparing two <code class="cCode">NULL</code> values yields an unknown value.</li></div><a name="wp80270"> </a><div class="pSmartList1"><li>The<code class="cCode"> IS NULL</code> test converts a <code class="cCode">NULL</code> persistent field or a single-valued relationship field to <code class="cCode">TRUE</code>. The <code class="cCode">IS NOT NULL</code> test converts them to <code class="cCode">FALSE</code>.</li></div><a name="wp80271"> </a><div class="pSmartList1"><li>Boolean operators and conditional tests use the three-valued logic defined by the following tables. (In these tables, T stands for <code class="cCode">TRUE</code>, F for <code class="cCode">FALSE</code>, and U for unknown.)<div align="left"><table border="1" summary="AND Operator Logic" id="wp80278">  <caption><a name="wp80278"> </a><div class="pTableTitle">Table 24-6   AND Operator Logic&nbsp;</div></caption>  <tr align="center">    <th><a name="wp80286"> </a><div class="pCellHeading">AND</div></th>    <th><a name="wp80288"> </a><div class="pCellHeading">T </div></th>    <th><a name="wp80290"> </a><div class="pCellHeading">F </div></th>    <th><a name="wp80292"> </a><div class="pCellHeading">U </div></th></tr>  <tr align="left">    <td><a name="wp80294"> </a><div class="pCellBody">T</div></td>    <td><a name="wp80296"> </a><div class="pCellBody">T</div></td>    <td><a name="wp80298"> </a><div class="pCellBody">F</div></td>    <td><a name="wp80300"> </a><div class="pCellBody">U</div></td></tr>  <tr align="left">    <td><a name="wp80302"> </a><div class="pCellBody">F</div></td>    <td><a name="wp80304"> </a><div class="pCellBody">F</div></td>    <td><a name="wp80306"> </a><div class="pCellBody">F</div></td>    <td><a name="wp80308"> </a><div class="pCellBody">F</div></td></tr>  <tr align="left">    <td><a name="wp80310"> </a><div class="pCellBody">U</div></td>    <td><a name="wp80312"> </a><div class="pCellBody">U</div></td>    <td><a name="wp80314"> </a><div class="pCellBody">F</div></td>    <td><a name="wp80316"> </a><div class="pCellBody">U</div></td></tr></table></div><div align="left"><table border="1" summary="OR Operator Logic" id="wp80322">  <caption><a name="wp80322"> </a><div class="pTableTitle">Table 24-7   OR Operator Logic&nbsp;</div></caption>  <tr align="center">    <th><a name="wp80330"> </a><div class="pCellHeading">OR</div></th>    <th><a name="wp80332"> </a><div class="pCellHeading">T </div></th>    <th><a name="wp80334"> </a><div class="pCellHeading">F </div></th>    <th><a name="wp80336"> </a><div class="pCellHeading">U </div></th></tr>  <tr align="left">    <td><a name="wp80338"> </a><div class="pCellBody">T</div></td>    <td><a name="wp80340"> </a><div class="pCellBody">T

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -