| <!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>Specifying entity inheritance</title> |
| <meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1.1 Build 004" /> |
| <meta name="date" content="2009-05-01T8:12:45Z" /> |
| <meta name="robots" content="noarchive" /> |
| <meta name="doctitle" content="Specifying entity inheritance" /> |
| <meta name="relnum" content="Release 2.2" /> |
| <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" /> |
| <!-- contents --> |
| </head> |
| <body> |
| <p><a id="CIHCCCJD" name="CIHCCCJD"></a></p> |
| <div class="sect1"><!-- infolevel="all" infotype="General" --> |
| <h1>Specifying entity inheritance</h1> |
| <p><a id="sthref92" name="sthref92"></a><a id="sthref93" name="sthref93"></a>An entity may inherit properties from other entities. You can specify a specific strategy to use for inheritance.</p> |
| <p>Use this procedure to specify inheritance (<code>@Inheritance)</code> for an existing entity (<code>@Entity</code>):</p> |
| <ol> |
| <li> |
| <p>Select the entity in the <span class="gui-object-title">Project Explorer</span>.</p> |
| </li> |
| <li> |
| <p>In the <span class="gui-object-title">JPA Details</span> view, select the <span class="gui-object-action">Inheritance</span> information.</p> |
| <div class="figure"><a id="sthref94" name="sthref94"></a> |
| <p class="titleinfigure">Specifying Inheritance</p> |
| <img src="img/inheritance_tab.png" alt="Selecting the Inheritance area on the JPA Details view." title="Selecting the Inheritance area on the JPA Details view." /><br /></div> |
| <!-- class="figure" --></li> |
| <li> |
| <p>In the <span class="bold">Strategy</span> list, select one of the following the inheritance strategies:</p> |
| <ul> |
| <li> |
| <p>A single table (default)</p> |
| </li> |
| <li> |
| <p>Joined table</p> |
| </li> |
| <li> |
| <p>One table per class</p> |
| </li> |
| </ul> |
| </li> |
| <li> |
| <p>Use the following table to complete the remaining fields on the tab. See <a href="reference009.htm#CACFHGHE">"Inheritance information"</a> for additional details.</p> |
| <div class="inftblruleinformal"> |
| <table class="RuleInformal" title="This table describes the options on the Persistence Properties view, Inheritance tab." summary="This table describes the options on the Persistence Properties view, Inheritance tab." dir="ltr" border="1" width="100%" frame="border" rules="all" cellpadding="3" cellspacing="0"> |
| <col width="24%" /> |
| <col width="*" /> |
| <col width="23%" /> |
| <thead> |
| <tr align="left" valign="top"> |
| <th align="left" valign="bottom" id="r1c1-t13">Property</th> |
| <th align="left" valign="bottom" id="r1c2-t13">Description</th> |
| <th align="left" valign="bottom" id="r1c3-t13">Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr align="left" valign="top"> |
| <td align="left" id="r2c1-t13" headers="r1c1-t13"><a id="sthref95" name="sthref95"></a><a id="sthref96" name="sthref96"></a>Discriminator Column</td> |
| <td align="left" headers="r2c1-t13 r1c2-t13">Name of the discriminator column when using a <span class="bold">Single</span> or <span class="bold">Joined</span> inheritance strategy. |
| <p>This field corresponds to the <code>@DiscriminatorColumn</code> annotation.</p> |
| </td> |
| <td align="left" headers="r2c1-t13 r1c3-t13"><br /></td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r3c1-t13" headers="r1c1-t13">Discriminator Type</td> |
| <td align="left" headers="r3c1-t13 r1c2-t13">Set the discriminator type to <code>Char</code> or <code>Integer</code> (instead of its default: <code>String</code>). The <span class="bold">Discriminator Value</span> must conform to this type.</td> |
| <td align="left" headers="r3c1-t13 r1c3-t13">String</td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r4c1-t13" headers="r1c1-t13"><a id="sthref97" name="sthref97"></a><a id="sthref98" name="sthref98"></a>Discriminator Value</td> |
| <td align="left" headers="r4c1-t13 r1c2-t13">Specify the discriminator value used to differentiate an entity in this inheritance hierarchy. The value must conform to the specified <span class="bold">Discriminator Type</span>. |
| <p>This field corresponds to the <code>@DiscriminatorValue</code> annotation.</p> |
| </td> |
| <td align="left" headers="r4c1-t13 r1c3-t13"><br /></td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td align="left" id="r5c1-t13" headers="r1c1-t13">Override Default</td> |
| <td align="left" headers="r5c1-t13 r1c2-t13">Use this field to specify custom primary key join columns. |
| <p>This field corresponds to the <code>@PrimaryKeyJoinClumn</code> annotation.</p> |
| </td> |
| <td align="left" headers="r5c1-t13 r1c3-t13"><br /></td> |
| </tr> |
| </tbody> |
| </table> |
| <br /></div> |
| <!-- class="inftblruleinformal" --></li> |
| </ol> |
| <p>Eclipse adds the following annotations the entity field:</p> |
| <pre xml:space="preserve" class="oac_no_warn"> |
| @Inheritance(strategy=InheritanceType.<span class="italic"><INHERITANCE_STRATEGY></span>) |
| @DiscriminatorColumn(name="<span class="italic"><DISCRIMINATOR_COLUMN></span>", |
| discriminatorType=<span class="italic"><DISCRIMINATOR_TYPE></span>) |
| @DiscriminatorValue(value-"<span class="italic"><DISCRIMINATOR_VALUE></span>") |
| @PrimaryKeyJoinColumn(name="<span class="italic"><JOIN_COLUMN_NAME></span>", |
| referencedColumnName = "<span class="italic"><REFERENCED_COLUMN_NAME></span>") |
| |
| </pre> |
| <p><a id="sthref99" name="sthref99"></a><a id="sthref100" name="sthref100"></a><a id="sthref101" name="sthref101"></a>The following figures illustrates the different inheritance strategies.</p> |
| <div class="figure"><a id="sthref102" name="sthref102"></a> |
| <p class="titleinfigure">Single Table Inheritance</p> |
| <img src="img/inheritance_single.png" alt="This figure illustrates entity inheritance in a single table." title="This figure illustrates entity inheritance in a single table." /><br /></div> |
| <!-- class="figure" --> |
| <div class="figure"><a id="sthref103" name="sthref103"></a> |
| <p class="titleinfigure"><a id="sthref104" name="sthref104"></a><a id="sthref105" name="sthref105"></a>Joined Table Inheritance</p> |
| <img src="img/inheritance_join.png" alt="This figure illustrates a joined subclass inheritance strategy." title="This figure illustrates a joined subclass inheritance strategy." /><br /></div> |
| <!-- class="figure" --> |
| <br /> |
| <p> </p> |
| <img src="img/ngrelt.png" alt="Related task" title="Related task" /><br /> |
| <br /> |
| <a href="task_add_persistence.htm#BABHICAI">Adding persistence to a class</a> |
| <p> </p> |
| <img src="img/ngrelc.png" alt="Related concept" title="Related concept" /><br /> |
| <br /> |
| <a href="concept_persistence.htm#BABCAHIC">Understanding Java persistence</a><br /></div> |
| <!-- class="sect1" --> |
| <!-- Start Footer --> |
| <div class="footer"> |
| <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> |
| <col width="86%" /> |
| <col width="*" /> |
| <tr> |
| <td align="left"><span class="copyrightlogo">Copyright © 2006, 2009, Oracle and/or its affiliates. All rights reserved.</span><br /> |
| <a href="dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td> |
| </tr> |
| </table> |
| </div> |
| <!-- class="footer" --> |
| </body> |
| </html> |