| <!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 21, 2008 14:42:05 --> |
| <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" /> |
| <title>One-to-many mapping</title> |
| |
| <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 (Mode = ohj/ohw) - Version 5.0" /> |
| <meta name="date" content="2005-07-10T12:57:20+08:00" /> |
| <meta name="robots" content="noarchive" /> |
| <meta name="doctitle" content="One-to-many mapping" /> |
| <meta name="relnum" content="Release 2.0" /> |
| <meta name="copyright" content="Copyright (c) 2000, 2008 oracle . All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: Oracle - initial API and implementation" /> |
| <link rel="copyright" href="dcommon/html/cpyr.htm" title="Copyright" type="text/html" /> |
| <link rel="stylesheet" href="dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" /> |
| <link rel="start" href="../../index.htm" title="Home" type="text/html" /> |
| <link rel="contents" href="toc.htm" title="Contents" type="text/html" /> |
| </head> |
| <body> |
| <p><a id="BABHGEBD" name="BABHGEBD"></a></p> |
| <div class="sect2"><!-- infolevel="all" infotype="General" --> |
| <h1>One-to-many mapping</h1> |
| <p><a id="sthref121" name="sthref121"></a><a id="sthref122" name="sthref122"></a><a id="sthref123" name="sthref123"></a><a id="sthref124" name="sthref124"></a>Use a <span class="bold">One-to-Many Mapping</span> to define a relationship with one-to-many multiplicity.</p> |
| <ol start="1"> |
| <li> |
| <p>In the <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a>, select the field to map.</p> |
| </li> |
| <li> |
| <p>Right-click the field and then select <span class="bold">Map As > One-to-many</span>. The <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> displays the properties for the selected.</p> |
| </li> |
| <li> |
| <p>Use this table to complete the <a href="ref_mapping_general.htm#CACBHFIJ">General information</a> fields JPA Details view.</p> |
| <div class="inftblruleinformal"> |
| <table class="RuleInformal" title="This table lists the fields in the General tab of the Persistence Properties view for this mapping." summary="This table lists the fields in the General tab of the Persistence Properties view for this mapping." 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-t24">Property</th> |
| <th align="left" valign="bottom" id="r1c2-t24">Description</th> |
| <th align="left" valign="bottom" id="r1c3-t24">Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr align="left" valign="top"> |
| <td align="left" id="r2c1-t24" headers="r1c1-t24">Mapping Entity Type Hyperlink</td> |
| <td align="left" headers="r2c1-t24 r1c2-t24">Defines mapping as <span class="bold">One-to-Many</span>. This corresponds to the <code>@OneToMany</code> annotation.</td> |
| <td align="left" headers="r2c1-t24 r1c3-t24">One-to-Many</td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r3c1-t24" headers="r1c1-t24">Target Entity</td> |
| <td align="left" headers="r3c1-t24 r1c2-t24">The entity to which this attribute is mapped.</td> |
| <td align="left" headers="r3c1-t24 r1c3-t24"><br /></td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r4c1-t24" headers="r1c1-t24">Cascade</td> |
| <td align="left" headers="r4c1-t24 r1c2-t24">See <a href="ref_mapping_general.htm#CACJAIHB">"Cascade Type"</a> for details. |
| <ul> |
| <li> |
| <p>Default</p> |
| </li> |
| <li> |
| <p>All</p> |
| </li> |
| <li> |
| <p>Persist</p> |
| </li> |
| <li> |
| <p>Merge</p> |
| </li> |
| <li> |
| <p>Remove</p> |
| </li> |
| </ul> |
| </td> |
| <td align="left" headers="r4c1-t24 r1c3-t24"><br /></td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r5c1-t24" headers="r1c1-t24">Fetch</td> |
| <td align="left" headers="r5c1-t24 r1c2-t24">Defines how data is loaded from the database. See <a href="ref_mapping_general.htm#CACGGGHB">"Fetch Type"</a> for details. |
| <ul> |
| <li> |
| <p>Eager</p> |
| </li> |
| <li> |
| <p>Lazy</p> |
| </li> |
| </ul> |
| </td> |
| <td align="left" headers="r5c1-t24 r1c3-t24">Eager</td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r6c1-t24" headers="r1c1-t24">Mapped By</td> |
| <td align="left" headers="r6c1-t24 r1c2-t24">The database field that owns the relationship.</td> |
| <td align="left" headers="r6c1-t24 r1c3-t24"><br /></td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r7c1-t24" headers="r1c1-t24">Order By</td> |
| <td align="left" headers="r7c1-t24 r1c2-t24">Specify the default order for objects returned from a query. See <a href="ref_mapping_general.htm#CACDADIH">"Order By"</a> for details. |
| <ul> |
| <li> |
| <p>No ordering</p> |
| </li> |
| <li> |
| <p>Primary key</p> |
| </li> |
| <li> |
| <p>Custom</p> |
| </li> |
| </ul> |
| </td> |
| <td align="left" headers="r7c1-t24 r1c3-t24">No ordering</td> |
| </tr> |
| </tbody> |
| </table> |
| <br /></div> |
| <!-- class="inftblruleinformal" --></li> |
| <li> |
| <p>Use this table to complete the <a href="reference014.htm#CACBAEBC">Join Table Information</a> fields in the JPA Details view.</p> |
| <div class="inftblruleinformal"> |
| <table class="RuleInformal" title="This table lists the fields in the Join Table tab of the Persistence Properties view for this mapping." summary="This table lists the fields in the Join Table tab of the Persistence Properties view for this mapping." 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-t25">Property</th> |
| <th align="left" valign="bottom" id="r1c2-t25">Description</th> |
| <th align="left" valign="bottom" id="r1c3-t25">Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr align="left" valign="top"> |
| <td align="left" id="r2c1-t25" headers="r1c1-t25">Name</td> |
| <td align="left" headers="r2c1-t25 r1c2-t25">Name of the join table</td> |
| <td align="left" headers="r2c1-t25 r1c3-t25">By default, the name is assumed to be the primary tables associated with the entities concatenated with an underscore.</td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r3c1-t25" headers="r1c1-t25">Join Columns</td> |
| <td align="left" headers="r3c1-t25 r1c2-t25">Specify two or more join columns (that is, a primary key).</td> |
| <td align="left" headers="r3c1-t25 r1c3-t25"><br /></td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r4c1-t25" headers="r1c1-t25">Inverse Join Columns</td> |
| <td align="left" headers="r4c1-t25 r1c2-t25">The join column on the owned (or inverse) side of the association: the owned entity's primary key column.</td> |
| <td align="left" headers="r4c1-t25 r1c3-t25"><br /></td> |
| </tr> |
| </tbody> |
| </table> |
| <br /></div> |
| <!-- class="inftblruleinformal" --></li> |
| </ol> |
| <p>Eclipse adds the following annotations to the field:</p> |
| <pre xml:space="preserve" class="oac_no_warn"> |
| @OneToMany(targetEntity=<span class="italic"><TARGET_ENTITY></span>) |
| @Column(name="<span class="italic"><COLUMN></span>") |
| |
| |
| @OneToMany(targetEntity=<span class="italic"><TARGET_ENTITY></span>.class, cascade=CascadeType.<span class="italic"><CASCADE_TYPE></span>, |
| fetch = FetchType.<span class="italic"><FETCH_TYPE></span>, mappedBy = "<span class="italic"><MAPPED_BY></span>")@OrderBy("<span class="italic"><ORDER_BY></span>") |
| @JoinTable(name="<span class="italic"><JOIN_TABLE_NAME></span>", joinColumns=@JoinColumn(name= |
| "<span class="italic"><JOIN_COLUMN_NAME></span>", referencedColumnName="<span class="italic"><JOIN_COLUMN_REFERENCED_COLUMN></span>"), |
| inverseJoinColumns=@JoinColumn(name="<span class="italic"><INVERSE_JOIN_COLUMN_NAME></span>", |
| referencedColumnName="<span class="italic"><INVERSE_JOIN_COLUMN_REFERENCED_COLUMN></span>")) |
| |
| </pre> |
| <p> </p> |
| <img src="img/ngrelt.png" alt="Related task" title="Related task" /><br /> |
| <br /> |
| <a href="task_mapping.htm#BABDGBIJ">Mapping an entity</a> |
| <p> </p> |
| <img src="img/ngrelr.png" alt="Related reference" title="Related reference" /><br /> |
| <br /> |
| <a href="ref_persistence_outline.htm#BABEGGFE">JPA Structure view</a><br /> |
| <a href="ref_persistence_map_view.htm#BABIFBAF">JPA Details view (for attributes)</a> |
| <p> </p> |
| <img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br /> |
| <br /> |
| <a href="concept_mapping.htm#BABBDJFI">Understanding OR mappings</a><br /> |
| <a href="concepts001.htm#BABBGFJG">Understanding EJB 3.0 Java Persistence API</a></div> |
| <!-- class="sect2" --> |
| <!-- Start Footer --> |
| <div class="footer"> |
| <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> |
| <tr> |
| <td align="left" width="86%"><a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Copyright © 2006, 2008, Oracle. All rights reserved.</span></a></td> |
| </tr> |
| </table> |
| </div> |
| <!-- class="footer" --> |
| </body> |
| </html> |