<!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> <!-- Run date = May 12, 2006 16:11:34 --> <title>Ye zO(u JPA g^ Web ^(u z^ (JSF)</title> <meta http-equiv="Content-Type" content="text/html; charset=unicode" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta name="generator" content="Oracle DARB XHTML Converter - Version 4.5.2 Build 47-Patch" /> <meta name="date" content="2005-07-10T12:57:20+08:00" /> <meta name="robots" content="all" scheme="http://www.robotstxt.org/" /> <meta name="doctitle" content=" Ye zO(u JPA g^ Web ^(u z^ (JSF)" /> <meta name="relnum" content="" /> <meta name="partnum" content="" /> <link rel="copyright" href="cpyr.htm" title="HrCg@b g" type="text/html" /> <link rel="stylesheet" href="http://www.oracle.com/technology/products/ias/toplink/jpa/tutorials/blafdoc.css" title="Oracle BLAFDoc" type="text/css" /> <link rel="start" href="../../index.htm" title=";Nu" type="text/html" /> </head> <body> <div class="header"><a id="top" name="top"></a> <div align="center"> <p><a href="http://www.oracle.com/technology/products/ias/toplink/jpa/tutorials/cpyr.htm"><img src="http://www.oracle.com/technology/products/ias/toplink/jpa/tutorials/oracle.gif" alt="Oracle _h" width="144" height="18" border="0" class="copyrightlogo" /></a></p> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/index.html">TopLink JPA</a> <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources-index.html">- Dn</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/tutorials-index.html">Ye z</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/how-to-index.html">elech</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/examples-index.html">:yO</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/download.html"> N}</a></p> </div> </div> <!-- class="header" --> <div class="ind"><!-- End Header --><a id="sthref1" name="sthref1"></a> <h1 class="chapter">Ye zO(u JPA g^ Web ^(u z^ (JSF)</h1> <p><span class="bold">Hr,g</span> 5/12/06</p> <ul> <li type="disc"> <p><a href="#CHDIIEHA">{N</a></p> <ul> <li type="circle"> <p><a href="#CHDBDEBB">@boN</a></p> </li> <li type="circle"> <p><a href="#CHDIFJFB">[ňNMn</a></p> </li> <li type="circle"> <p><a href="#CHDDDBDG">NYe z^(u z^</a></p> </li> </ul> </li> <li type="disc"> <p><a href="#CHDDDGDD">Ye zek</a></p> <ul> <li type="circle"> <p><a href="#CHDEIGDD">,{ 1 ek:N[SORybl</a></p> </li> <li type="circle"> <p><a href="#CHDDIFII">,{ 2 ekMnc~'`USCQ</a></p> </li> <li type="circle"> <p><a href="#CHDCCJCD">,{ 3 ekO(u JPA [e gR</a></p> </li> <li type="circle"> <p><a href="#CHDEGJEF">,{ 4 ekO(u Tyg⋌TR`g</a></p> </li> <li type="circle"> <p><a href="#CHDCHADI">,{ 5 ekSbSTr</a></p> <ul> <li type="circle"> <p><a href="#CHDIADFJ">SbS Persistence.xml eN</a></p> </li> <li type="circle"> <p><a href="#CHDJGCHF">)R(u Tomcat 5.x ۏLSbSTr</a></p> </li> </ul> </li> <li type="circle"> <p><a href="#CHDICIEE">,{ 6 ekubpenc^!j_v^ۏLkXEQ</a></p> </li> <li type="circle"> <p><a href="#CHDJJGDE">,{ 7 ekЏL^(u z^</a></p> </li> </ul> </li> <li type="disc"> <p><a href="#CHDHBIHI">;`~</a></p> </li> </ul> <a id="CHDIIEHA" name="CHDIIEHA"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1">{N</h2> <p>dkYe z\c[`[bO(u EJB 3.0 Java c~'` API (JPA) ۏL Web ^(u z^v_S0SbSTrvW,gek0</p> <p>(W^(u z^-N Java Server Faces (JSF) h:yB\\)R(u JPA _ EJB 3.0 [hVNYvc~'`0</p> <p><a href="#CHDCBFAE">V 1-1</a> >f:yNdkYe zO(uv[a!jW0</p> <div class="figure"><a id="CHDCBFAE" name="CHDCBFAE"></a> <p class="titleinfigure">V 1-1 Ye z[a!jW</p> <img src="http://www.oracle.com/technology/products/ias/toplink/jpa/tutorials/model.gif" alt="TbD g[V 1-1 vc" title="TbD g[V 1-1 vc" /><br /> <br /> <br /></div> <!-- class="figure" --> <p> gsQ JPA vfYOo` S</p> <ul> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/index.html">OTN Nv JPA</a></p> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html">JPA yblS</a></p> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html">TopLink JPA ibU\S</a></p> </li> <li type="disc"> <p><a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr220/index.html">JSR-220 Enterprise JavaBeans v3.0</a> Java c~'` API ĉ</p> </li> <li type="disc"> <p><a href="https://glassfish.dev.java.net/nonav/javaee5/api/index.html?javax/persistence/package-summary.html">[tev JPA Javadoc</a></p> </li> </ul> <a id="CHDBDEBB" name="CHDBDEBB"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">@boN</h3> <ul> <li type="disc"> <p><a href="http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&amp;PartDetailId=jdk-1.5.0_06-oth-JPR&amp;SiteId=JSC&amp;TransactionId=noreg">JDK 1.5</a></p> </li> <li type="disc"> <p><a href="http://download.oracle.com/otn_hosted_doc/jpa/order-jsf-jpa.zip">Ye znNx (<code>order-jsf-jpa.zip</code>)</a></p> </li> <li type="disc"> <p>sQ|penc^</p> <p>`SNO(uNavgevsQ|penc^0</p> <p>,gYe zO(uvpenc^/f Oracle penc^_wcHr</p> <ul> <li type="circle"> <p><a href="http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html">Oracle penc^_wcHr - Linux Hr</a></p> </li> <li type="circle"> <p><a href="http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html">Oracle penc^_wcHr - Windows Hr</a></p> </li> </ul> <p>O(u:N`vpenc^cPv JDBC qR z^0</p> <p>Oracle penc^_wcHrv JDBC qR z^MON <code>&lt;ORACLE_HOME&gt;\jdbc\lib</code> -N0</p> </li> <li type="disc"> <p>Web [hV</p> <p>`SNO(uNav Web [hV0</p> <p>,gYe zGP`O(uNN N Web [hVKNN</p> <ul> <li type="circle"> <p><a href="http://tomcat.apache.org/download-55.cgi">Tomcat Hr,g 5.x</a></p> </li> </ul> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/download.html">TopLink JPA</a></p> <p>USQ Nbvc\ N}N*N TopLink JPA [ň z^ JAR eN Y <code>glassfish-persistence-installer-X.X-bXX.jar</code>0</p> </li> </ul> </div> <!-- class="sect2" --> <a id="CHDIFJFB" name="CHDIFJFB"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">[ňNMn</h3> <p>(W_Y,gYe zKNMR `_{[ňv^Mn}Y@bvoN</p> <ol type="1" start="1"> <li> <p><a href="http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&amp;PartDetailId=jdk-1.5.0_06-oth-JPR&amp;SiteId=JSC&amp;TransactionId=noreg">[ň JDK 5.0</a></p> </li> <li> <p>[ňYe z^(u z^0</p> <ul> <li type="disc"> <p>\ <code>order-jsf-jpa.zip</code> eN㉋S)0R`{:g NvN*NvU_-N0</p> <p>ُ/f <code>&lt;TUTORIAL_HOME&gt;</code> vU_0</p> <p>㉋S)[bT ^SbN NeN</p> <ul> <li type="circle"> <p><code>jpa-example.war</code> - (uNۏLrv[te^(u z^S0</p> </li> <li type="circle"> <p><code>jpa-example-src.jar</code> - @b g^c~'`neN0</p> </li> <li type="circle"> <p><code>persistence-unit-src.jar</code> - @b gc~'`neN vQ-NSb <code>persistence.xml</code> eN0</p> </li> </ul> </li> <li type="disc"> <p>(W <code>&lt;TUTORIAL_HOME&gt;</code> -NR^N*NP[vU_ <code>&lt;WAR_HOME&gt;</code> v^\ <code>jpa-example.war</code> eN㉋S)0RP[vU_-N0</p> </li> </ul> <p> gsQYe z^(u z^vfYOo` S <a href="#CHDDDBDG">NYe z^(u z^</a>0</p> </li> <li> <p>[ňv^n`vsQ|penc^</p> <ul> <li type="disc"> <p><a href="http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm">[ň Oracle penc^_wcHr - Linux Hr</a></p> </li> <li type="disc"> <p><a href="http://download.oracle.com/docs/cd/B25329_01/doc/install.102/b25143/toc.htm">Oracle penc^_wcHr - Windows Hr</a></p> </li> <li type="disc"> <p><a href="http://download.oracle.com/docs/cd/B25329_01/doc/admin.102/b25610/toc.htm">Oracle penc^_wcHreQ</a></p> </li> <li type="disc"> <p>\sQ|penc^ JDBC qR z^mR0RYe z^(u z^ WAR eNP[vU_ <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib</code> -N0</p> </li> </ul> </li> <li> <p>[ňv^n Web [hV</p> <ul> <li type="disc"> <p><a href="http://tomcat.apache.org/tomcat-5.5-doc/setup.html">[ňv^n Tomcat</a></p> </li> </ul> </li> <li> <p>[ň TopLink JPA</p> <ul> <li type="disc"> <p>\ TopLink JPA [ň z^ JAR eNly0R4NevU_-N0</p> </li> <li type="disc"> <p>Ǐ(W}TNL-NeQN N}TNeggbL`@b N}v TopLink JPA [ň z^ JAR eN_{O(u JDK 1.5 </p> <pre xml:space="preserve" class="oac_no_warn"> java -jar glassfish-persistence-installer-X.X-bXX.jar </pre></li> <li type="disc"> <p>T NnR0RSOSv+g>\ USQ <span class="bold">Accept</span>0</p> <p>[ň z^O_ <code>README</code>0SeNT TopLink Essential JAR eN Y N@b:y</p> <pre xml:space="preserve" class="oac_no_warn"> glassfish-persistence\README glassfish-persistence\3RD-PARTY-LICENSE.txt glassfish-persistence\toplink-essentials.jar glassfish-persistence\toplink-essentials-agent.jar glassfish-persistence\CDDLv1.0.txt </pre></li> <li type="disc"> <p>\ <code>toplink-essentials.jar</code> T <code>toplink-essentials-agent.jar</code> mR0RYe z^(u z^ WAR eNP[vU_ <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib</code> -N0</p> </li> </ul> </li> </ol> </div> <!-- class="sect2" --> <a id="CHDDDBDG" name="CHDDDBDG"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">NYe z^(u z^</h3> <p>Ye z^(u z^SvQ@b g_~NS+T(W㉋S)0R <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;</code> vU_v T:N <code>jpa-example.war</code> v WAR eN-NS<a href="#CHDIFJFB">[ňNMn</a> 0</p> <p><a href="#CHDCEDCG">:yO 1-1</a> >f:yNdk WAR eNv~g <a href="#CHDEJHFA">h 1-1</a> cN勇eN-Nk*N͑vP[vU_0</p> <div class="example"><a id="CHDCEDCG" name="CHDCEDCG"></a> <p class="titleinexample">:yO 1-1 jpa-example.war eNv~g</p> <pre xml:space="preserve" class="oac_no_warn"> images WEB-INF classes/ oracle/toplink/jpa/example/inventory/ services/ InventoryService.class OrderService.class services/impl/ JPAResourceBean.class ManagedInventoryBean.class ManagedOrderBean.class tools/ DDLGenerator.class Populator.class ui/ InventoryManagerBean.class lib/ - JSF JARs - JDBC driver JARs toplink-essentials.jar toplink-essentials-agent.jar jpa-demo.jar faces-config.xml web.xml *.jsp </pre></div> <!-- class="example" --> <div class="tblruleformalmax"><a id="sthref3" name="sthref3"></a><a id="CHDEJHFA" name="CHDEJHFA"></a> <p class="titleintable">h 1-1 jpa-example.war eNvP[vU_</p> <table class="RuleFormalMax" title="jpa-example.war eNvP[vU_" summary="This table describes the important subdirectories in the order-jsf-jpa.war file." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0"> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t2">P[vU_</th> <th align="left" valign="bottom" id="r1c2-t2">f</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t2" headers="r1c1-t2"> <p><code>images</code>/</p> </td> <td align="left" headers="r2c1-t2 r1c2-t2"> <p>images vU_-NS+TYe z^(u z^O(uvVP0</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t2" headers="r1c1-t2"> <p><code>services/</code></p> </td> <td align="left" headers="r3c1-t2 r1c2-t2"> <p><code>WEB-INF/classes/oracle/toplink/jpa/example/inventory/services/</code> vU_-NS+T(uN[INYe z^(u z^cOv^X[TUSNRvcS0</p> <p>v^v Java neNMON <code>&lt;TUTORIAL_HOME&gt;\jpa-example-src.jar</code> -N0</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t2" headers="r1c1-t2"> <p><code>services/impl/</code></p> </td> <td align="left" headers="r4c1-t2 r1c2-t2"> <p><code>WEB-INF/classes/oracle/toplink/jpa/example/inventory/services/impl/</code> vU_-NS+T(uN[s gRcSv{|</p> <ul> <li type="disc"> <p><code>ManagedOrderBean</code> [s <code>OrderService</code> cS</p> </li> <li type="disc"> <p><code>ManagedInventoryBean</code> [s <code>InventoryService</code> cS</p> </li> </ul> <p><code>JPAResourceBean</code> /fN*NR{| Ye z^(u z^O(u勅R{|:Nc~'`USCQS <code>EntityManager</code>0</p> <p>v^v Java neNMON <code>&lt;TUTORIAL_HOME&gt;\jpa-example-src.jar</code> -N0</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t2" headers="r1c1-t2"> <p><code>tools/</code></p> </td> <td align="left" headers="r5c1-t2 r1c2-t2"> <p><code>WEB-INF/classes/oracle/toplink/jpa/example/inventory/tools/</code> vU_-NS+TNNR{| `SN b'`0WO(uُNR{|ubYe z^(u z^vpenc^!j_ (<code>DDLGenerator</code>) v^kXEQ!j_ (<code>Populator</code>)0</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t2" headers="r1c1-t2"> <p><code>ui/</code></p> </td> <td align="left" headers="r6c1-t2 r1c2-t2"> <p><code>WEB-INF/classes/oracle/toplink/jpa/example/inventory/ui/</code> vU_-NS+TqRYe z^(u z^(u7bLubv <code>InventoryManagerBean</code> {|0</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t2" headers="r1c1-t2"> <p><code>lib/</code></p> </td> <td align="left" headers="r7c1-t2 r1c2-t2"> <p><code>WEB-INF/lib</code> vU_-NS+TYe z^(u z^OVv@b g JAR eN0wQSOS+TN NeN</p> <ul> <li type="disc"> <p>JSF JAR eN</p> </li> <li type="disc"> <p>JDBC qR z^ JAR eN</p> </li> <li type="disc"> <p>TopLink JPA JAR eN<code>toplink-essentials.jar</code> T <code>toplink-essentials-agent.jar</code></p> </li> <li type="disc"> <p>c~'`USCQ<code>jpa-demo.jar</code> eN/fYe z^(u z^c~'`USCQ vQ-NS+Tc~'`{|T <code>persistence.xml</code> eNS <a href="#CHDDIFII">,{ 2 ekMnc~'`USCQ</a> 0</p> <p>v^v Java neNMON <code>&lt;TUTORIAL_HOME&gt;\persistence-unit-src.jar</code> -N0</p> </li> </ul> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblruleformalmax" --></div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CHDDDGDD" name="CHDDDGDD"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1">Ye zek</h2> <p>N NǏ zN~NR^Ye z^(u z^ev͑ek</p> <ul> <li type="disc"> <p><a href="#CHDEIGDD">,{ 1 ekybl[SO</a></p> </li> <li type="disc"> <p><a href="#CHDDIFII">,{ 2 ekMnc~'`USCQ</a></p> </li> <li type="disc"> <p><a href="#CHDCCJCD">,{ 3 ekO(u JPA [e gR</a></p> </li> <li type="disc"> <p><a href="#CHDEGJEF">,{ 4 ekO(u}T Tg⋌TR`g</a></p> </li> <li type="disc"> <p><a href="#CHDCHADI">,{ 5 ekSbSTr</a></p> </li> <li type="disc"> <p><a href="#CHDICIEE">,{ 6 ekubpenc^!j_v^ۏLkXEQ</a></p> </li> <li type="disc"> <p><a href="#CHDJJGDE">,{ 7 ekЏL^(u z^</a></p> </li> </ul> <a id="CHDEIGDD" name="CHDEIGDD"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">,{ 1 ekybl[SO</h3> <p>ybl/fO(uCQpenc[ Java nNxۏLOpvNy{US0fnxvel CQpenc\ыۏv^v Java {|eN (WЏLeg1u JPA c~'`cOhV[vQۏLʑN{t JPA L:N0</p> <p>O(u JPA yblOpc~'`{|SN:N JPA c~'`cO z^cfTN{|c~'` v^NSNc[c~'`{|v~Q[0</p> <p>(W'YYpe`Q N `SNO(u JPA v؞f:yN_vyblTNNnfvS ybl0</p> <p> gsQfYOo` S <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html">JPA ybl_(u</a>0</p> <p>(W,gYe z-N :N[SOO(uyblvvv/f</p> <ul> <li type="disc"> <p><a href="#CHDHHEEH">c[c~'`{|@Entity</a></p> </li> <li type="disc"> <p><a href="#CHDDEGAH">c[sQ|penc^h@Table</a></p> </li> <li type="disc"> <p><a href="#CHDFEJGH">c[;N.@Id</a></p> </li> <li type="disc"> <p><a href="#CHDJIGGA">c[penc^Rv^\'`@Column</a></p> </li> <li type="disc"> <p><a href="#CHDFBDJH">c[PN‰[W[k@Version</a></p> </li> <li type="disc"> <p><a href="#CHDIEDCJ">c[}T Tg@NamedQuery T @NamedQueries</a></p> </li> </ul> <a id="CHDHHEEH" name="CHDHHEEH"></a> <div class="sect3"> <h4 class="sect3">c[c~'`{|@Entity</h4> <p>(W,gYe z-N N NT{|1u <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#Entity"><code>@Entity</code></a> yblOp</p> <ul> <li type="disc"> <p><code>oracle.toplink.jpa.example.inventory.model.Item</code></p> </li> <li type="disc"> <p><code>oracle.toplink.jpa.example.inventory.model.Inventory</code></p> </li> <li type="disc"> <p><code>oracle.toplink.jpa.example.inventory.model.Order</code></p> </li> </ul> <p><a href="#CHDBIBDB">:yO 1-2</a> >f:yN <code>Item</code> {|vybl0<code>@Entity</code> yblc:y JPA c~'`O^FU{tُN{|vc~'`0</p> <div class="example"><a id="CHDBIBDB" name="CHDBIBDB"></a> <p class="titleinexample">:yO 1-2 @Entity</p> <pre xml:space="preserve" class="oac_no_warn"> @Entity public class Item { ... } </pre></div> <!-- class="example" --> <p>؞`Q N N*N[SOv Ty1\/f勞[SO@b^\{|v Ty0`SNO(u <code>@Entity</code> v^\'` <code>name</code> :N[SOc[vQ[v Ty0</p> </div> <!-- class="sect3" --> <a id="CHDDEGAH" name="CHDDEGAH"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">c[sQ|penc^h@Table</h4> <p>؞`Q N JPA c~'`O^ z^O(u[SO TyS<a href="#CHDHHEEH">c[c~'`{|@Entity</a> \O:NsQ|penc^hv Ty0</p> <p>(W,gYe z-N TopLink JPA c~'`O^ z^\WNdk؞ Ty:N <code>Item</code> T <code>Inventory</code> [SOR^penc^hsS :N <code>ITEM</code> [SOR^h <code>Item</code> :N <code>INVENTORY</code> [SOR^h <code>Inventory</code>0</p> <p>6q ` N:N <code>Order</code> [SOR^ T:N <code>ORDER</code> vh V:Ndk Ty/f'YYpesQ|penc^-NvOYuW[0(Wdk`Q N bNO(u <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#GeneratedValue"><code>@Table</code></a> yblv؞vh T Y<a href="#CHDEJDCD">:yO 1-3</a> @b:y0</p> <div class="example"><a id="CHDEJDCD" name="CHDEJDCD"></a> <p class="titleinexample">:yO 1-3 (W Order.java -NO(u @Table</p> <pre xml:space="preserve" class="oac_no_warn"> @Entity // specify table name as the default will be ORDER which is a reserved word @Table(name=&quot;ORDER_TABLE&quot;) ... public class Order { ... } </pre></div> <!-- class="example" --> <p>b bNSNO(u <code>@Entity</code> v^\'` <code>name</code> f9e <code>Order</code> {|v[SO Ty<a href="#CHDHHEEH">c[c~'`{|@Entity</a> 0</p> <p>(W@b g`Q N k*Nh-N\S+Tv^[SOv@b gc~'`W[k0JPA cQ d^~Ǐ <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#Transient"><code>@Transient</code></a> yblvOp &TRN*N[SOv@b gW[k/fc~'`W[k0</p> </div> <!-- class="sect3" --> <a id="CHDFEJGH" name="CHDFEJGH"></a> <div class="sect3"> <h4 class="sect3">c[;N.@Id</h4> <p>k*N[SO_{b gN*N;N.~Ǐ <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#Id"><code>@Id</code></a> yblOpvW[kb^\'`0</p> <p>Y<a href="#CHDGHJIA">:yO 1-4</a> @b:y <code>Order</code> {|vW[k <code>orderId</code> c[:N[SOv;N.0<a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#GeneratedValue"><code>@GeneratedValue</code></a> yblc:y JPA c~'`O^ z^#ubdkW[k/UNhƋ&{v

<div class="example"><a id="CHDGHJIA" name="CHDGHJIA"></a> <p class="titleinexample">:yO 1-4 (W Order.java -NO(u @Id</p> <pre xml:space="preserve" class="oac_no_warn"> public class Order { @Id @GeneratedValue protected long orderId; ... } </pre></div> <!-- class="example" --> <p>Y<a href="#CHDDGBJB">:yO 1-5</a> @b:y <code>Inventory</code> {|vW[k <code>id</code> c[:N[SOv;N.0Y <code>Inventory</code> el <code>setItem</code> @b:y 1uN <code>Inventory</code> [SONvQ <code>Item</code> -N_;N.v:yO 1-5</a> @bNdk:yO-N NO(u <code>@GeneratedValue</code> ybl0 gsQ <code>@Column</code> yblvfYOo` S<a href="#CHDJIGGA">c[penc^Rv^\'`@Column</a>0</p> <div class="example"><a id="CHDDGBJB" name="CHDDGBJB"></a> <p class="titleinexample">:yO 1-5 (W Inventory.java -NO(u @Id</p> <pre xml:space="preserve" class="oac_no_warn"> public class Inventory { @Id @Column(insertable=false, updatable=false) protected long id; ... public void setItem(Item item) { this.item = item; this.id = item.getSKU(); } ... } </pre></div> <!-- class="example" --> <p>Y<a href="#CHDJCDDC">:yO 1-6</a> @b:y <code>Item</code> {|v^\'` <code>getSKU</code> c[:N[SOv;N.08^`Q N `SNyblW[kY <code>Order.java</code> T <code>Inventory.java</code> -Nvybl byblNW[kvsQv^\'`Y<a href="#CHDJCDDC">:yO 1-6</a> @b:y 0<a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#GeneratedValue"><code>@GeneratedValue</code></a> yblc:y JPA c~'`O^ z^#c^:ubdkW[k/UNhƋ&{v

<div class="example"><a id="CHDJCDDC" name="CHDJCDDC"></a> <p class="titleinexample">:yO 1-6 (W Item.java -NO(u @Id</p> <pre xml:space="preserve" class="oac_no_warn"> @Entity public class Item { protected long SKU; ... @Id @GeneratedValue public long getSKU() { return SKU; } ... } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --> <a id="CHDJIGGA" name="CHDJIGGA"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">c[penc^Rv^\'`@Column</h4> <p>؞`Q N JPA c[k*N[SOvk*NW[k[^勞[SOvsQ|penc^h-NvNR vQ-NRv TyT{|WR+R[^W[kv TyT{|W0</p> <p>`SNO(u <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#Column"><code>@Column</code></a> yblvُy؞L:N0</p> <p>Y<a href="#CHDHJJHD">:yO 1-7</a> @b:y <code>Inventory</code> {|O(u <code>@Column</code> ybl[W[k <code>id</code> tesQ|penc^vR0Y <code>Inventory</code> el <code>setItem</code> @b:y 1uN <code>Inventory</code> [SONvQ <code>Item</code> -N_;N.v:yO 1-5</a> @bNbN_{nxO8l܏ N(Wpenc^-NvSQL INSERT</code> b <code>SQL UPDATE</code> S-N0</p> <div class="example"><a id="CHDHJJHD" name="CHDHJJHD"></a> <p class="titleinexample">:yO 1-7 (W Inventory.java -NO(u @Column</p> <pre xml:space="preserve" class="oac_no_warn"> public class Inventory { @Id @Column(insertable=false, updatable=false) protected long id; ... public void setItem(Item item) { this.item = item; this.id = item.getSKU(); } ... } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref4" name="sthref4"></a> <h4 class="sect3">c[sQ| f\@OneToOne</h4> <p>؞`Q N JPA c~'`O^ z^\ꁨR{tW,g f\'YR Java WCQ{|W0WCQ{|WvSňTg>N{|W TsQ| f\0</p> <p>`SNO(u <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#Basic"><code>@Basic</code></a> yblteW,g f\0</p> <p>_NSNO(uN NybltesQ| f\</p> <ul> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#ManyToMany"><code>@ManyToMany</code></a></p> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#ManyToOne"><code>@ManyToOne</code></a></p> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#OneToMany"><code>@OneToMany</code></a></p> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#OneToOne"><code>@OneToOne</code></a></p> </li> </ul> <p><code>@OneToOne</code> yblOp <code>Inventory</code> {|vW[k <code>item</code> c[ <code>Inventory</code> N <code>Item</code> KNvsQ|Y<a href="#CHDEJGDF">:yO 1-8</a> @b:y 0<a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#GeneratedValue"><code>@JoinColumn</code></a> yblc:y JPA c~'`O^ z^ _(u <code>Item</code> vY.R/f T:N <code>ID</code> v <code>Inventory</code> R0</p> <div class="example"><a id="CHDEJGDF" name="CHDEJGDF"></a> <p class="titleinexample">:yO 1-8 (W Inventory.java -NO(u @OneToOne</p> <pre xml:space="preserve" class="oac_no_warn"> public class Inventory { ... @OneToOne @JoinColumn(name=&quot;ID&quot;) protected Item item; ... } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --> <a id="CHDFBDJH" name="CHDFBDJH"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">c[PN‰[W[k@Version</h4> <p>؞`Q N JPA c~'`O^ z^GP[1u^(u z^#pencN'`0</p> <p>Oracle ^`c[\O:NPN‰[<code>@Version</code></a> ybleg/T(u JPA c~'`O^ z^{tvPN‰[0</p> <p>Y<a href="#CHDHHDHE">:yO 1-9</a> @b:y <code>@Version</code> yblOp <code>Order</code> {|vW[k <code>version</code> \vQc[:NPN‰[W[k0</p> <div class="example"><a id="CHDHHDHE" name="CHDHHDHE"></a> <p class="titleinexample">:yO 1-9 (W Order.java -NO(u @Version</p> <pre xml:space="preserve" class="oac_no_warn"> public class Order { ... @Version protected int version; ... } </pre></div> <!-- class="example" --> <p>Y<a href="#CHDEHJAC">:yO 1-10</a> @b:y <code>@Version</code> yblOp <code>Inventory</code> {|vW[k <code>version</code> \vQc[:NPN‰[W[k0</p> <div class="example"><a id="CHDEHJAC" name="CHDEHJAC"></a> <p class="titleinexample">:yO 1-10 (W Inventory.java -NO(u @Version</p> <pre xml:space="preserve" class="oac_no_warn"> public class Inventory { ... @Version protected int version; ... } </pre></div> <!-- class="example" --> <p>Y<a href="#CHDDEHCC">:yO 1-11</a> @b:y <code>@Version</code> yblOp <code>Item</code> {|v^\'` <code>setVersion</code> \N^\'`[^vW[k <code>version</code> c[:NPN‰[W[k0</p> <div class="example"><a id="CHDDEHCC" name="CHDDEHCC"></a> <p class="titleinexample">:yO 1-11 (W Item.java -NO(u @Version</p> <pre xml:space="preserve" class="oac_no_warn"> public class Item { ... @Version public void setVersion(int version) { this.version = version; } ... } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --> <a id="CHDIEDCJ" name="CHDIEDCJ"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">c[}T Tg@NamedQuery T @NamedQueries</h4> <p>(WN*N JPA ^(u z^-N `SNO(u <code>EntityManager</code> [eR`0WR^ JPA gg b`_NSNO(u <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#NamedQuery"><code>@NamedQuery</code></a> T <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#NamedQueries"><code>@NamedQueries</code></a> ybl[INُNg v^9hnc TygbLgS<a href="#CHDEGJEF">,{ 4 ekO(u}T Tg⋌TR`g</a> 0ُ[N~8^O(ub YBgvg^8^eO0</p> <p>(W,gYe z-N <code>Inventory.java</code> [INNN*N}T TgY<a href="#CHDGABJB">:yO 1-12</a> @b:y 0</p> <div class="example"><a id="CHDGABJB" name="CHDGABJB"></a> <p class="titleinexample">:yO 1-12 (W Inventory.java -NO(u @NamedQuery</p> <pre xml:space="preserve" class="oac_no_warn"> @NamedQuery( name=&quot;inventoryForCategory&quot;, query=&quot;SELECT i FROM Inventory i WHERE i.item.category = :category and i.quantity &lt;= :maxQuantity&quot; ) </pre></div> <!-- class="example" --> <p>Yg``[IN$N*NbfYv}T Tg `_{P <code>Order.java</code> 7hO(u <code>@NamedQueries</code> yblS<a href="#CHDCCHJA">:yO 1-13</a> 0</p> <div class="example"><a id="CHDCCHJA" name="CHDCCHJA"></a> <p class="titleinexample">:yO 1-13 (W Order.java -NO(u @NamedQueries</p> <pre xml:space="preserve" class="oac_no_warn"> @NamedQueries({ @NamedQuery( name=&quot;shippedOrdersForItem&quot;, query=&quot;SELECT o FROM Order o JOIN o.item i WHERE i.sKU = :itemId and o.arrivalDate is not null&quot; ), @NamedQuery( name=&quot;pendingOrdersForItem&quot;, query=&quot;SELECT o FROM Order o WHERE o.item.sKU = :itemId and o.arrivalDate is null&quot; ) }) </pre></div> <!-- class="example" --> <p>`؏SNR^Su SQL gS <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#NamedNativeQuery"><code>@NamedNativeQuery</code></a> T <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#NamedNativeQueries"><code>@NamedNativeQueries</code></a> 0</p> </div> <!-- class="sect3" --></div> <!-- class="sect2" --> <a id="CHDDIFII" name="CHDDIFII"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">,{ 2 ekMnc~'`USCQ</h3> <p>[SO{thV/f`(ueg[[SO[eW,gc~'`d\OR^0S0feT Rd v;N JPA Lub0</p> <p>N*Nc~'`USCQǏ[[SO{thVO^FU0Mn^\'`Tc~'`{tv{|I{~Q[ۏL;R~eg[IN[SO{thVvMn0</p> <p>k*Nc~'`USCQ_{b g Ty0N*Nc[v EJB-JAR0WAR0EAR b^(u z^[7bz JAR -NSX[(W~[ TyvN*Nc~'`USCQS<a href="#CHDIADFJ">SbS Persistence.xml eN</a> 0(WS[SO{thV]Se `9hnc Tyegc[c~'`USCQS<a href="#CHDCCFDD">S[SO{thV]S</a> 0</p> <p>c~'`USCQ(W <code>persistence.xml</code> eN-N[IN0</p> <p>(W,gYe z-N <code>persistence.xml</code> eNS+T(W <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\jpa-demo.jar</code> -N0(Wdk <code>persistence.xml</code> eN-N bN[INN<a href="#CHDBCAHA">:yO 1-14</a> >f:yvc~'`USCQ0</p> <div class="example"><a id="CHDBCAHA" name="CHDBCAHA"></a> <p class="titleinexample">:yO 1-14 Persistence.xml -Nvc~'`USCQ</p> <pre xml:space="preserve" class="oac_no_warn"> ... &lt;persistence-unit name=&quot;default&quot; transaction-type=&quot;RESOURCE_LOCAL&quot;&gt; &lt;provider&gt; oracle.toplink.essentials.PersistenceProvider &lt;/provider&gt; &lt;exclude-unlisted-classes&gt;false&lt;/exclude-unlisted-classes&gt; &lt;properties&gt; &lt;property name=&quot;toplink.jdbc.driver&quot; value=&quot;oracle.jdbc.OracleDriver&quot;/&gt; &lt;property name=&quot;toplink.jdbc.url&quot; value=&quot;jdbc:oracle:thin:@myhost:l521:MYSID&quot;/&gt; &lt;property name=&quot;toplink.jdbc.password&quot; value=&quot;tiger&quot;/&gt; &lt;property name=&quot;toplink.jdbc.user&quot; value=&quot;scott&quot;/&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; ... </pre> <p>dkc~'`USCQv Ty:N <code>default</code>0</p> <p>[v <code>transaction-type</code> :N <code>RESOURCE_LOCAL</code> h:ydkc~'`USCQv[SO{thV NSN JTA NR0</p> <p>[O(uO^FU <code>oracle.toplink.essentials.PersistenceProvider</code><code>javax.persistence.EntityManagerFactory</code> v[O 0</p> <p>Ǐ\ <code>exclude-unlisted-classes</code> n:N <code>false</code> dkc~'`USCQ{tvQVQv@b g[SOsS @b g <code>Order.class</code>0<code>Inventory.class</code> T <code>Item.class</code>0</p> <p>gTnv/fc~'`USCQ^\'`0`SNO(uc~'`USCQ^\'`te^B\ JPA c~'`O^ z^ v^:NNc~'`USCQvsQTv^B\sQ|penc^c[ޏc`0</p> <p>Mnc~'`USCQ</p> <ol type="1" start="1"> <li> <p>\ <code>jpa-demo.jar</code> eN㉋S)0RN*N4NevU_-N0</p> </li> <li> <p> <code>persistence.xml</code> eN0</p> <p>nN N^\'`N9SM`vsQ|penc^</p> <pre xml:space="preserve" class="oac_no_warn"> &lt;property name=&quot;<a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html#toplink.jdbc.driver">toplink.jdbc.driver</a>&quot; value=&quot;oracle.jdbc.OracleDriver&quot;/&gt; &lt;property name=&quot;<a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html#toplink.jdbc.url">toplink.jdbc.url</a>&quot; value=&quot;jdbc:oracle:thin:@myhost:l521:MYSID&quot;/&gt; &lt;property name=&quot;<a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html#toplink.jdbc.password">toplink.jdbc.password</a>&quot; value=&quot;tiger&quot;/&gt; &lt;property name=&quot;<a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html#toplink.jdbc.user">toplink.jdbc.user</a>&quot; value=&quot;scott&quot;/&gt; </pre></li> <li> <p>Q!kS) <code>jpa-demo.jar</code> eN0</p> </li> <li> <p>\O9eǏv <code>jpa-demo.jar</code> eN Y6R0R <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib</code> vU_-N vS gv <code>jpa-demo.jar</code>0</p> </li> </ol> <p> gsQ TopLink JPA c~'`O^ z^ibU\Q[vfYOo` S <a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html">TopLink JPA ibU\S</a>0</p> <p> gsQ <code>persistence.xml</code> eNvfYOo` S <a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr220/index.html">JSR-000220 ON JavaBeans v3.0</a> JPA ĉ ,{ 6.3 \0</p> </div> <!-- class="example" --></div> <!-- class="sect2" --> <a id="CHDCCJCD" name="CHDCCJCD"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">,{ 3 ekO(u JPA [e gR</h3> <p>{tYe z(u7bLubv;NDn/f <code>oracle.toplink.jpa.example.inventory.ui.InventoryManagerBean</code>0Dn-NS+T[N NT{|v_(u ُN{|O(u JPA [edk^(u z^cOv gR</p> <ul> <li type="disc"> <p><code>oracle.toplink.jpa.example.inventory.services.impl.ManagedOrderBean</code>[e <code>oracle.toplink.jpa.example.inventory.services.OrderService</code> </p> </li> <li type="disc"> <p><code>oracle.toplink.jpa.example.inventory.services.impl.ManagedInventoryBean</code>[e <code>oracle.toplink.jpa.example.inventory.services.InventoryService</code> </p> </li> </ul> <p>ُ$N*N{|>f:yNO(u JPA ۏLN Nd\Ovel</p> <ul> <li type="disc"> <p><a href="#CHDCCFDD">S[SO{thV]S</a></p> </li> <li type="disc"> <p><a href="#CHDEHJIE">R^[SO</a></p> </li> <li type="disc"> <p><a href="#CHDDHEFB">S[SO</a></p> </li> <li type="disc"> <p><a href="#CHDBFEGF">fe[SO</a></p> </li> <li type="disc"> <p><a href="#CHDBGDEA"> Rd[SO</a></p> </li> </ul> <a id="CHDCCFDD" name="CHDCCFDD"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">S[SO{thV]S</h4> <p><code>ManagedOrderBean</code> T <code>ManagedInventoryBean</code> O(uR{|[O <code>oracle.toplink.jpa.example.inventory.services.impl.JPAResourceBean</code> :N T:N <code>default</code> vc~'`USCQbN(W <code>persistence.xml</code> eN-N[INvc~'`USCQ S[SO{thV]Sv[OS<a href="#CHDDIFII">,{ 2 ekMnc~'`USCQ</a> 0<a href="#CHDJEAJJ">:yO 1-15</a> >f:yNS[SO{thV]Svel0</p> <div class="example"><a id="CHDJEAJJ" name="CHDJEAJJ"></a> <p class="titleinexample">:yO 1-15 S[SO{thV]S</p> <pre xml:space="preserve" class="oac_no_warn"> public EntityManagerFactory getEMF (){ if (emf == null){ emf = Persistence.createEntityManagerFactory(&quot;default&quot;); } return emf; } </pre></div> <!-- class="example" --> <p>NeSN[SO{thV]S <code>ManagedOrderBean</code> T <code>ManagedInventoryBean</code> {|1\OO(u勞[SO{thV]SSN*N[SO{thV NOgbL@b gvW,gc~'`d\OR^0S0feT Rd 0</p> </div> <!-- class="sect3" --> <a id="CHDEHJIE" name="CHDEHJIE"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">R^[SO</h4> <p><a href="#CHDCBDIH">:yO 1-16</a> >f:yN <code>ManagedOrderBean</code> O(uvQ <code>EntityManager</code> R^ev <code>Order</code> [SOvel0</p> <div class="example"><a id="CHDCBDIH" name="CHDCBDIH"></a> <p class="titleinexample">:yO 1-16 (W ManagedOrderBean -NR^ Order [SO</p> <pre xml:space="preserve" class="oac_no_warn"> public void createNewOrder(Order order){ EntityManager em = jpaResourceBean.getEMF().createEntityManager(); try{ em.getTransaction().begin(); em.persist(order); em.getTransaction().commit(); }finally{ em.close(); } } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --> <a id="CHDDHEFB" name="CHDDHEFB"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">S[SO</h4> <p><a href="#CHDEAEJB">:yO 1-17</a> >f:yN <code>ManagedOrderBean</code> O(uvQ <code>EntityManager</code> 9hnc;N.SS_MR <code>Order</code> [SOvel0</p> <div class="example"><a id="CHDEAEJB" name="CHDEAEJB"></a> <p class="titleinexample">:yO 1-17 (W ManagedOrderBean -NS Order [SO</p> <pre xml:space="preserve" class="oac_no_warn"> public Order getOrderById(long orderId){ EntityManager em = jpaResourceBean.getEMF().createEntityManager(); try{ return em.find(Order.class, orderId); }finally{ em.close(); } } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --> <a id="CHDBFEGF" name="CHDBFEGF"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">fe[SO</h4> <p><a href="#CHDECGHE">:yO 1-18</a> >f:yN <code>ManagedOrderBean</code> O(uvQ <code>EntityManager</code> feS_MR <code>Order</code> [SOvel0(WcN,g0WNRe OYu[ <code>Order</code> [SOۏLv@b gf9e0</p> <div class="example"><a id="CHDECGHE" name="CHDECGHE"></a> <p class="titleinexample">:yO 1-18 (W ManagedOrderBean -Nfe Order [SO</p> <pre xml:space="preserve" class="oac_no_warn"> public void alterOrderQuantity(long orderId, int newQuantity){ EntityManager em = jpaResourceBean.getEMF().createEntityManager(); try{ em.getTransaction().begin(); Order order = em.find(Order.class, orderId); order.setQuantity(newQuantity); em.getTransaction().commit(); }finally{ em.close(); } } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --> <a id="CHDBGDEA" name="CHDBGDEA"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3"> Rd[SO</h4> <p><a href="#CHDDJCBA">:yO 1-19</a> >f:yN <code>ManagedOrderBean</code> O(uvQ <code>EntityManager</code> 9hnc;N. RdS_MR <code>Order</code> [SOvel0</p> <div class="example"><a id="CHDDJCBA" name="CHDDJCBA"></a> <p class="titleinexample">:yO 1-19 Rd ManagedOrderBean -Nv Order [SO</p> <pre xml:space="preserve" class="oac_no_warn"> public void requestCancelOrder(long orderId){ EntityManager em = jpaResourceBean.getEMF().createEntityManager(); try{ em.getTransaction().begin(); Order order = em.find(Order.class, orderId); em.remove(order); em.getTransaction().commit(); }finally{ em.close(); } } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --></div> <!-- class="sect2" --> <a id="CHDEGJEF" name="CHDEGJEF"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">,{ 4 ekO(u}T Tg⋌TR`g</h3> <p><code>ManagedOrderBean</code> T <code>ManagedInventoryBean</code> {|O(u JPA g0,gcN[NYUOO(u JPA ۏLN Nd\O</p> <ul> <li type="disc"> <p><a href="#CHDEDGDD">)R(u}T Tgegg⋞[SO</a></p> </li> <li type="disc"> <p><a href="#CHDDIEGB">)R(uR`gegg⋞[SO</a></p> </li> </ul> <a id="CHDEDGDD" name="CHDEDGDD"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">)R(u}T Tgegg⋞[SO</h4> <p>Y<a href="#CHDEBFAF">:yO 1-20</a> @b:y <code>ManagedInventoryBean</code> gbL}T Tg <code>inventoryForCategory</code>0dk{|O(uvQ <code>EntityManager</code> WN}T TgR^N*N <code>Query</code> [a N}T Tg/f1u Inventory {|-Nv <code>@NamedQuery</code> c[vS<a href="#CHDGABJB">:yO 1-12</a> 0KNT {|O(u <code>Query</code> API n}T TSpe v^)R(u <code>Query</code> el <code>getResultList</code>勹el\ԏVng⋄v[SO <code>Object</code> [OvRh gbLg0Yg`nx[g*NgSԏVUS*N[a HN`SNO(u <code>Query</code> el <code>getSingleResult</code> ԏVUS*N[SO0</p> <div class="example"><a id="CHDEBFAF" name="CHDEBFAF"></a> <p class="titleinexample">:yO 1-20 (W ManagedInventoryBean -NO(u}T Tg</p> <pre xml:space="preserve" class="oac_no_warn"> public Collection&lt;Inventory&gt; getInventoryForCategoryMaxQuantity(String category, int quantity){ EntityManager em = jpaResourceBean.getEMF().createEntityManager(); try{ Query query = em.createNamedQuery(&quot;inventoryForCategory&quot;); query.setParameter(&quot;category&quot;, category); query.setParameter(&quot;maxQuantity&quot;, quantity); return query.getResultList(); }finally{ em.close(); } } </pre></div> <!-- class="example" --> <p> gsQR^}T Tg⋄vfYOo` S<a href="#CHDIEDCJ">c[}T Tg@NamedQuery T @NamedQueries</a>0</p> </div> <!-- class="sect3" --> <a id="CHDDIEGB" name="CHDDIEGB"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">)R(uR`gegg⋞[SO</h4> <p><a href="#CHDJIACG">:yO 1-21</a> >f:yN <code>ManagedInventoryBean</code> YUOǏc[ЏLegW[&{2NegR^R`g0</p> <div class="example"><a id="CHDJIACG" name="CHDJIACG"></a> <p class="titleinexample">:yO 1-21 (W ManagedInventoryBean -NO(uR`g</p> <pre xml:space="preserve" class="oac_no_warn"> public Collection&lt;Category&gt; getCategories(){ EntityManager em = jpaResourceBean.getEMF().createEntityManager(); Collection&lt;Category&gt; result = em.createQuery(&quot;Select new oracle.toplink.jpa.example.inventory.nonentity.Category(i.category) from Item i group by i.category&quot;).getResultList(); em.close(); return result; } </pre></div> <!-- class="example" --></div> <!-- class="sect3" --></div> <!-- class="sect2" --> <a id="CHDCHADI" name="CHDCHADI"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">,{ 5 ekSbSNr</h3> <p>,gN~NYUOSbSTrYe z^(u z^ vQ-NSbN Nd\O</p> <ul> <li type="disc"> <p><a href="#CHDIADFJ">SbS Persistence.xml eN</a></p> </li> <li type="disc"> <p><a href="#CHDJGCHF">)R(u Tomcat 5.x ۏLSbSTr</a></p> </li> </ul> <a id="CHDIADFJ" name="CHDIADFJ"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">SbS Persistence.xml eN</h4> <p>(W,gYe z-N bN\ <code>persistence.xml</code> eNSbS0R <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\jpa-demo.jar</code> -N0dkd\OO <code>WEB-INF\lib</code> vU_b:N^(u z^vc~'`USCQ9hvU_0</p> <p>`SN\ <code>persistence.xml</code> eNSbS0RN NNaveN-N</p> <ul> <li type="disc"> <p>EJB-JAR eN</p> </li> <li type="disc"> <p>WAR eN</p> <ul> <li type="circle"> <p><code>WEB-INF/classes</code> vU_</p> </li> <li type="circle"> <p><code>WEB-INF/lib</code>(Wdk`Q N <code>persistence.xml</code> eN_{MON JAR eN-N </p> </li> </ul> </li> <li type="disc"> <p>EAR</p> <ul> <li type="circle"> <p><code>persistence.xml</code> eNMON EAR v9hvU_v JAR eN-N</p> </li> <li type="circle"> <p><code>persistence.xml</code> eNMON EAR ^vU_v JAR eN-N</p> </li> </ul> </li> <li type="disc"> <p>^(u z^[7bz JAR</p> </li> </ul> <p><a id="sthref5" name="sthref5"></a><a id="sthref6" name="sthref6"></a>c~'`USCQvV1u`[INc~'`USCQ9hvU_vMOnQ[</p> <ul> <li type="disc"> <p>EJB-JAR0WAR b^(u z^[7bz jar</p> <ul> <li type="disc"> <p>R+RSQN EJB-JAR0WAR b^(u z^ jar vV</p> </li> <li type="disc"> <p>[ EJB-JAR0WAR b^(u z^ jar -N[INv~NS</p> </li> <li type="disc"> <p>^(u z^vvQNR w N0Rdkc~'`USCQ</p> </li> </ul> </li> <li type="disc"> <p>EAR</p> <ul> <li type="disc"> <p>SQNte*N^(u z^vV</p> </li> <li type="disc"> <p>8^[^(u z^-Nv@b g~NS</p> </li> </ul> </li> </ul> <p>(W,gYe z-N T:N <code>default</code> vc~'`USCQvVSQNYe z WAR eNvVUSCQN[ WAR eN-N[INv~NS0</p> </div> <!-- class="sect3" --> <a id="CHDJGCHF" name="CHDJGCHF"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3">)R(u Tomcat 5.x ۏLSbSTr</h4> <p>\Ye z^(u z^SbS0R Tomcat v^ۏLr \ <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;</code> vU_vQ[S)0R T:N <code>jpa-example.war</code> veN-N0</p> <p>\Ye z^(u z^r0R Tomcat</p> <ol type="1" start="1"> <li> <p>N N|~^\'`vn</p> <ul> <li type="disc"> <p><code>JAVA_HOME</code> - n:N JDK 1.5 v[ňvU_0</p> <p>OY<code>C:\Program Files\Java\jdk1.5.0_06</code></p> </li> <li type="disc"> <p><code>CATALINA_HOME</code> - n:N Tomcat v[ňvU_0</p> <p>OY<code>C:\apache-tomcat-5.5.17</code></p> </li> <li type="disc"> <p><code>PATH</code> - `v__{S+T <code>%JAVA_HOME%\bin</code></p> </li> </ul> </li> <li> <p>\ <code>jpa-example.war</code> eN Y6R0R Tomcat <code>CATALINA_HOME\webapps</code> vU_-N0</p> </li> <li> <p>N}TNL/TR Tomcat</p> <p>(W Windows s^S N</p> <pre xml:space="preserve" class="oac_no_warn"> cd %CATALINA_HOME% cd bin startup.cmd </pre> <p>(W Unix s^S N</p> <pre xml:space="preserve" class="oac_no_warn"> cd $CATALINA_HOME cd bin startup.sh </pre></li> <li> <p>(Wck8^Qeg~be_mo` &quot;deployWAR INFO:Deploying web application archive jpa-example.war&quot; b(W <code>CATALINA_HOME/logs/catalina.out</code> e_eN-Ng~b勈mo` nx^(u z^vrbR0</p> </li> </ol> </div> <!-- class="sect3" --></div> <!-- class="sect2" --> <a id="CHDICIEE" name="CHDICIEE"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">,{ 6 ekubpenc^!j_v^ۏLkXEQ</h3> <p>(WЏLYe z^(u z^MR `_{R^v^kXEQpenc^!j_ Y N@b:y</p> <ol type="1" start="1"> <li> <p><a href="#CHDDJCDH">:yO 1-22</a> -N>f:yv}TNL O{|_S+TN NQ[</p> <ul> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\classes</code></p> </li> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\jpa-demo.jar</code></p> </li> <li type="disc"> <p>@b g JDBC JAR</p> <p>[N Oracle penc^ nxO\ <code>dms.jar</code> S+T(WQ0</p> </li> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\toplink-essentials-agent.jar</code></p> </li> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\toplink-essentials.jar</code></p> </li> </ul> <p>(Wdk:yO-N <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;</code> :N <code>C:\Temp\war</code>0</p> <div class="example"><a id="CHDDJCDH" name="CHDDJCDH"></a> <p class="titleinexample">:yO 1-22 )R(u DDLGenerator ub!j_</p> <pre xml:space="preserve" class="oac_no_warn"> java.exe -client -classpath &quot;C:\Temp\war\WEB-INF\classes;C:\Temp\war\WEB-INF\lib\dms.jar;C:\Temp\war\WEB-INF\lib\jpa-demo.jar;C:\Temp\war\WEB-INF\lib\ocrs12.jar;C:\Temp\war\WEB-INF\lib\ojdbc14dms.jar;C:\Temp\war\WEB-INF\lib\ojdl.jar;C:\Temp\war\WEB-INF\lib\orai18n.jar;C:\Temp\war\WEB-INF\lib\toplink-essentials-agent.jar;C:\Temp\war\WEB-INF\lib\toplink-essentials.jar&quot; -Dtoplink.ddl-generation=drop-and-create-tables oracle.toplink.jpa.example.inventory.tools.DDLGenerator </pre></div> <!-- class="example" --> <div align="center"> <div class="inftblnote"><br /> <table class="Note oac_no_warn" summary="This is a layout table to format a note" title="ُ/f <tbody> <tr> <td align="left"> <p class="notep1">la</p> gsQO(uO^FUibU\R{t!j_ubvfYOo` S <a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html#Java2DBSchemaGen">TopLink (uN!j_ubvO^FUibU\R</a>0</td> </tr> </tbody> </table> <br /></div> <!-- class="inftblnote" --></div> </li> <li> <p>gbL}TNL0</p> </li> <li> <p><a href="#CHDJIIJH">:yO 1-23</a> >f:yv}TNL O{|_S+TN NQ[</p> <ul> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\classes</code></p> </li> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\jpa-demo.jar</code></p> </li> <li type="disc"> <p>@b g JDBC JAR</p> <p>[N Oracle penc^ nxO\ <code>dms.jar</code> S+T(WQ0</p> </li> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\toplink-essentials-agent.jar</code></p> </li> <li type="disc"> <p><code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;\WEB-INF\lib\toplink-essentials.jar</code></p> </li> </ul> <p>(Wdk:yO-N <code>&lt;TUTORIAL_HOME&gt;\&lt;WAR_HOME&gt;</code> :N <code>C:\Temp\war</code>0</p> <div class="example"><a id="CHDJIIJH" name="CHDJIIJH"></a> <p class="titleinexample">:yO 1-23 )R(u Populator kXEQ!j_</p> <pre xml:space="preserve" class="oac_no_warn"> java.exe -client -classpath &quot;C:\Temp\war\WEB-INF\classes;C:\Temp\war\WEB-INF\lib\jpa-demo.jar;C:\Temp\war\WEB-INF\lib\dms.jar;C:\Temp\war\WEB-INF\lib\ocrs12.jar;C:\Temp\war\WEB-INF\lib\ojdbc14dms.jar;C:\Temp\war\WEB-INF\lib\ojdl.jar;C:\Temp\war\WEB-INF\lib\orai18n.jar;C:\Temp\war\WEB-INF\lib\toplink-essentials-agent.jar;C:\Temp\war\WEB-INF\lib\toplink-essentials.jar&quot; -javaagent:C:\Temp\war\WEB-INF\lib\toplink-essentials-agent.jar=main oracle.toplink.jpa.example.inventory.tools.Populator </pre></div> <!-- class="example" --></li> <li> <p>gbL}TNL0</p> </li> </ol> </div> <!-- class="sect2" --> <a id="CHDJJGDE" name="CHDJJGDE"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2">,{ 7 ekЏL^(u z^</h3> <p>(WrKNT^(u z^S<a href="#CHDCHADI">,{ 5 ekSbSNr</a> /TROmȉhVv^eQN N URL</p> <ul> <li type="disc"> <p>[N Tomcat</p> <p><code>http://&lt;hostname&gt;:8080/jpa-example/index.faces</code></p> <p>vQ-N <code>&lt;hostname&gt;</code> /f`r^(u z^v{:gv Ty0</p> </li> </ul> </div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CHDHBIHI" name="CHDHBIHI"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1">;`~</h2> <p>,gYe zcNO(u JPA {tc~'`v JSF Web ^(u z^0</p> <p> gsQ~Oo` S</p> <ul> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/index.html">OTN Nv JPA</a></p> </li> <li type="disc"> <p><a href="http://otn.oracle.com/global/cn/tech/java/jsf.html">OTN Nv JSF</a></p> </li> <li type="disc"> <p><a href="http://otn.oracle.com/global/cn/tech/java/ejb30.html">OTN Nv EJB 3.0</a></p> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html">JPA yblS</a></p> </li> <li type="disc"> <p><a href="http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-extensions.html">TopLink JPA ibU\S</a></p> </li> <li type="disc"> <p><a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr220/index.html">JSR-220 ON JavaBeans v3.0</a> Java c~'` API ĉ</p> </li> <li type="disc"> <p><a href="http://java.sun.com/javaee/5/docs/api/index.html?javax/persistence/package-summary.html">[tev JPA Javadoc</a></p> </li> </ul> </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%"> <tr> <td valign="bottom" width="33%"> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100"> <tr> <td>&nbsp;</td> </tr> </table> </td> <td class="copyrightlogo"><a href="http://www.oracle.com/technology/products/ias/toplink/jpa/tutorials/cpyr.htm"><img class="copyrightlogo" src="http://www.oracle.com/technology/products/ias/toplink/jpa/tutorials/oracle.gif" alt="Oracle _h" /><br /> <span class="copyrightlogo">HrCg@b g &#xA9; OYu@b gCg)R0</span></a></td> <td valign="bottom" align="right" width="33%"> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="225"> <tr> <td>&nbsp;</td> </tr> </table> </td> </tr> </table> </div> <div class="header"> <div align="center"> <div class="header"> <div align="center"> <p><a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/index.html">TopLink JPA</a> <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources-index.html">- Dn</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/tutorials-index.html">Ye z</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/how-to-index.html">elech</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/examples-index.html">:yO</a> - <a href="http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/download.html"> N}</a></p> </div> </div> <div class="ind"> <h1 class="chapter"><span class="secnum"></span></h1> </div> </div> </div> <!-- class="footer" --> </body> </html>