Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Configuring an Object-Relational Data Type Mapping (ELUG)"
m |
m (→How to Configure Structure Name Using Java) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<div style="float:right;border:1px solid #000000;padding:5px">__TOC__ | <div style="float:right;border:1px solid #000000;padding:5px">__TOC__ | ||
[[Special:Whatlinkshere/Configuring an Object-Relational Data Type Mapping (ELUG)|Related Topics]]</div> | [[Special:Whatlinkshere/Configuring an Object-Relational Data Type Mapping (ELUG)|Related Topics]]</div> | ||
− | |||
− | + | For information on how to create EclipseLink mappings, see [[Creating%20a%20Mapping%20(ELUG)|Creating a Mapping]]. | |
− | + | ||
− | For information on how to create EclipseLink mappings, see [[Creating%20a%20Mapping%20(ELUG) | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
This table lists the types of object-relational data type mappings that you can configure and provides a cross-reference to the type-specific chapter that lists the configurable options supported by that type. | This table lists the types of object-relational data type mappings that you can configure and provides a cross-reference to the type-specific chapter that lists the configurable options supported by that type. | ||
Line 15: | Line 8: | ||
<span id="Table 50-1"></span> | <span id="Table 50-1"></span> | ||
− | |||
− | |||
{| class="HRuleFormalMax" dir="ltr" title="Configuring Object-Relational Data Type Mappings" summary="This table provides a cross-reference to additional configuration options for each specific object-relational mapping type." width="100%" border="1" frame="hsides" rules="rows" cellpadding="3" frame="hsides" rules="rows" | {| class="HRuleFormalMax" dir="ltr" title="Configuring Object-Relational Data Type Mappings" summary="This table provides a cross-reference to additional configuration options for each specific object-relational mapping type." width="100%" border="1" frame="hsides" rules="rows" cellpadding="3" frame="hsides" rules="rows" | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
! id="r1c1-t2" align="left" valign="bottom" | '''If you are creating...''' | ! id="r1c1-t2" align="left" valign="bottom" | '''If you are creating...''' | ||
− | ! id="r1c2-t2" align="left" valign="bottom" | '''See | + | ! id="r1c2-t2" align="left" valign="bottom" | '''See...''' |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r2c1-t2" headers="r1c1-t2" align="left" | | | id="r2c1-t2" headers="r1c1-t2" align="left" | | ||
− | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Structure Mapping|Object-relational data type structure mapping ]] | |
| headers="r2c1-t2 r1c2-t2" align="left" | | | headers="r2c1-t2 r1c2-t2" align="left" | | ||
− | [Configuring%20an%20Object-Relational%20Data%20Type%20Structure%20Mapping%20(ELUG) | + | [[Configuring%20an%20Object-Relational%20Data%20Type%20Structure%20Mapping%20(ELUG)|Configuring an Object-Relational Data Type Structure Mapping]]<br> |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r3c1-t2" headers="r1c1-t2" align="left" | | | id="r3c1-t2" headers="r1c1-t2" align="left" | | ||
[[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Reference Mapping|Object-relational data type reference mapping ]] | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Reference Mapping|Object-relational data type reference mapping ]] | ||
| headers="r3c1-t2 r1c2-t2" align="left" | | | headers="r3c1-t2 r1c2-t2" align="left" | | ||
− | [Configuring%20an%20Object-Relational%20Data%20Type%20Reference%20Mapping%20(ELUG) | + | [[Configuring%20an%20Object-Relational%20Data%20Type%20Reference%20Mapping%20(ELUG)|Configuring an Object-Relational Data Type Reference Mapping]]<br> |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r4c1-t2" headers="r1c1-t2" align="left" | | | id="r4c1-t2" headers="r1c1-t2" align="left" | | ||
[[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Array Mapping|Object-relational data type array mapping ]] | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Array Mapping|Object-relational data type array mapping ]] | ||
| headers="r4c1-t2 r1c2-t2" align="left" | | | headers="r4c1-t2 r1c2-t2" align="left" | | ||
− | [Configuring%20an%20Object-Relational%20Data%20Type%20Array%20Mapping%20(ELUG) | + | [[Configuring%20an%20Object-Relational%20Data%20Type%20Array%20Mapping%20(ELUG)|Configuring an Object-Relational Data Type Array Mapping]]<br> |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r5c1-t2" headers="r1c1-t2" align="left" | | | id="r5c1-t2" headers="r1c1-t2" align="left" | | ||
[[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Object Array Mapping|Object-relational data type object array mapping]] | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Object Array Mapping|Object-relational data type object array mapping]] | ||
| headers="r5c1-t2 r1c2-t2" align="left" | | | headers="r5c1-t2 r1c2-t2" align="left" | | ||
− | [Configuring%20an%20Object-Relational%20Data%20Type%20Object%20Array%20Mapping%20(ELUG) | + | [[Configuring%20an%20Object-Relational%20Data%20Type%20Object%20Array%20Mapping%20(ELUG)|Configuring an Object-Relational Data Type Object Array Mapping]]<br> |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r6c1-t2" headers="r1c1-t2" align="left" | | | id="r6c1-t2" headers="r1c1-t2" align="left" | | ||
− | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] |
| headers="r6c1-t2 r1c2-t2" align="left" | | | headers="r6c1-t2 r1c2-t2" align="left" | | ||
− | [Configuring%20an%20Object-Relational%20Data%20Type%20Nested%20Table%20Mapping%20(ELUG) | + | [[Configuring%20an%20Object-Relational%20Data%20Type%20Nested%20Table%20Mapping%20(ELUG)|Configuring an Object-Relational Data Type Nested Table Mapping]]<br> |
|} | |} | ||
− | |||
For more information, see the following: | For more information, see the following: | ||
− | + | * [[Introduction%20to%20Mappings%20(ELUG)|Introduction to Mappings]] | |
− | * [Introduction%20to%20Mappings%20(ELUG) | + | * [[Introduction%20to%20Relational%20Mappings%20(ELUG)|Introduction to Relational Mappings]] |
− | * [Introduction%20to%20Relational%20Mappings%20(ELUG) | + | |
Line 59: | Line 48: | ||
==Configuring Common Object-Relational Data Type Mapping Options== | ==Configuring Common Object-Relational Data Type Mapping Options== | ||
− | + | Thist able lists the configurable options shared by two or more object-relational data type mapping types. In addition to the configurable options described here, you must also configure the options described for the specific object-relational data type mapping types (see [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Mapping Types|Object-Relational Data Type Mapping Types]]), as shown in the following table. | |
− | + | ||
− | + | ||
− | |||
− | {| class="RuleFormalMax" dir="ltr" title="Common Options for Object-Relational Data Type Mappings" summary="This table lists the configurable options shated by two or more object relational mapping types | + | <span id="Table 50-2"></span> |
+ | {| class="RuleFormalMax" dir="ltr" title="Common Options for Object-Relational Data Type Mappings" summary="This table lists the configurable options shated by two or more object relational mapping types and indicates if the option can be configured with the Workbench, Java, or both." width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
! id="r1c1-t3" align="left" valign="bottom" | '''Option to Configure''' | ! id="r1c1-t3" align="left" valign="bottom" | '''Option to Configure''' | ||
− | |||
! id="r1c3-t3" align="left" valign="bottom" | '''Workbench<br>''' | ! id="r1c3-t3" align="left" valign="bottom" | '''Workbench<br>''' | ||
! id="r1c4-t3" align="left" valign="bottom" | '''Java''' | ! id="r1c4-t3" align="left" valign="bottom" | '''Java''' | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r2c1-t3" headers="r1c1-t3" align="left" | | | id="r2c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[#Configuring Reference Class|Reference class ]] | |
− | | | + | |
− | + | ||
| headers="r2c1-t3 r1c3-t3" align="left" | | | headers="r2c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 82: | Line 66: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r3c1-t3" headers="r1c1-t3" align="left" | | | id="r3c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[#Configuring Attribute Name|Attribute name ]] | |
− | | | + | |
− | + | ||
| headers="r3c1-t3 r1c3-t3" align="left" | | | headers="r3c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 91: | Line 73: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r4c1-t3" headers="r1c1-t3" align="left" | | | id="r4c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[#Configuring Field Name|Field name ]] | |
− | | | + | |
− | + | ||
| headers="r4c1-t3 r1c3-t3" align="left" | | | headers="r4c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 100: | Line 80: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r5c1-t3" headers="r1c1-t3" align="left" | | | id="r5c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[#Configuring Structure Name|Structure name]] | |
− | | | + | |
− | + | ||
| headers="r5c1-t3 r1c3-t3" align="left" | | | headers="r5c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 109: | Line 87: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r6c1-t3" headers="r1c1-t3" align="left" | | | id="r6c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[Configuring%20a%20Mapping%20(ELUG)#Configuring Read-Only Mappings|Read-only]] | |
− | | | + | |
− | + | ||
| headers="r6c1-t3 r1c3-t3" align="left" | | | headers="r6c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 118: | Line 94: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r7c1-t3" headers="r1c1-t3" align="left" | | | id="r7c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[Configuring%20a%20Mapping%20(ELUG)#Configuring Method or Direct Field Accessing at the Mapping Level|Method or direct field access ]] | |
− | | | + | |
− | + | ||
| headers="r7c1-t3 r1c3-t3" align="left" | | | headers="r7c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 127: | Line 101: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r8c1-t3" headers="r1c1-t3" align="left" | | | id="r8c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[Configuring%20a%20Mapping%20(ELUG)#Configuring Indirection (Lazy Loading)|Indirection (lazy loading)]] | |
− | + | ||
− | + | ||
| headers="r8c1-t3 r1c3-t3" align="left" | | | headers="r8c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 136: | Line 108: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r9c1-t3" headers="r1c1-t3" align="left" | | | id="r9c1-t3" headers="r1c1-t3" align="left" | | ||
− | + | [[Configuring%20a%20Mapping%20(ELUG)#Configuring Container Policy|Container policy ]] | |
− | | | + | |
− | + | ||
| headers="r9c1-t3 r1c3-t3" align="left" | | | headers="r9c1-t3 r1c3-t3" align="left" | | ||
[[Image:unsupport.gif|Unsupported]]<br> | [[Image:unsupport.gif|Unsupported]]<br> | ||
Line 145: | Line 115: | ||
|} | |} | ||
− | + | ||
==Configuring Reference Class== | ==Configuring Reference Class== | ||
Line 151: | Line 121: | ||
When mapping an attribute that involves a relationship to another class, you must specify the reference class–the Java class to which the mapped attribute refers. | When mapping an attribute that involves a relationship to another class, you must specify the reference class–the Java class to which the mapped attribute refers. | ||
− | + | This table summarizes which object-relational data type mappings support this option. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | <span id="Table 50-3"></span> | ||
{| class="RuleFormal" dir="ltr" title="Mapping Support for Reference Class" summary="This table summarizes which mappings support Reference Class" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | {| class="RuleFormal" dir="ltr" title="Mapping Support for Reference Class" summary="This table summarizes which mappings support Reference Class" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
! id="r1c1-t4" align="left" valign="bottom" | '''Mapping''' | ! id="r1c1-t4" align="left" valign="bottom" | '''Mapping''' | ||
− | ! id="r1c2-t4" align="left" valign="bottom" | ''' | + | ! id="r1c2-t4" align="left" valign="bottom" | '''Using the Workbench''' |
− | ! id="r1c3-t4" align="left" valign="bottom" | '''[[#How to Configure Reference Class Using Java]<br>''' | + | ! id="r1c3-t4" align="left" valign="bottom" | '''[[#How to Configure Reference Class Using Java|Using Java]]<br>''' |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r2c1-t4" headers="r1c1-t4" align="left" | | | id="r2c1-t4" headers="r1c1-t4" align="left" | | ||
− | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Structure Mapping|Object-relational data type structure mapping ]] | |
| headers="r2c1-t4 r1c2-t4" align="left" | | | headers="r2c1-t4 r1c2-t4" align="left" | | ||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
Line 192: | Line 159: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r6c1-t4" headers="r1c1-t4" align="left" | | | id="r6c1-t4" headers="r1c1-t4" align="left" | | ||
− | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] |
| headers="r6c1-t4 r1c2-t4" align="left" | | | headers="r6c1-t4 r1c2-t4" align="left" | | ||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
Line 199: | Line 166: | ||
|} | |} | ||
− | + | ||
===How to Configure Reference Class Using Java=== | ===How to Configure Reference Class Using Java=== | ||
Line 205: | Line 172: | ||
Use <tt>org.eclipse.persistence.mappings.ForeignReferenceMapping</tt> method <tt>setReferenceClass</tt> to specify the target class of the attribute being mapped. | Use <tt>org.eclipse.persistence.mappings.ForeignReferenceMapping</tt> method <tt>setReferenceClass</tt> to specify the target class of the attribute being mapped. | ||
− | + | Tihs example shows how to use this method with a <tt>ReferenceMapping</tt> that maps the <tt>manager</tt> attribute of the <tt>Employee</tt> class. | |
− | + | <span id="Example 50-1"></span> | |
− | ''''' | + | ''''' Configuring Reference Class in Java''''' |
− | + | <source lang="java"> | |
− | + | ||
public void customize(ClassDescriptor descriptor) { | public void customize(ClassDescriptor descriptor) { | ||
ReferenceMapping managerMapping = new ReferenceMapping(); | ReferenceMapping managerMapping = new ReferenceMapping(); | ||
− | managerMapping.setReferenceClass("Employee.class"); | + | managerMapping.setReferenceClass("Employee.class"); // set reference class |
managerMapping.setAttributeName("manager"); | managerMapping.setAttributeName("manager"); | ||
− | + | // add this mapping to descriptor | |
descriptor.addMapping (managerMapping); | descriptor.addMapping (managerMapping); | ||
} | } | ||
− | + | </source> | |
− | + | ||
For more information, see the ''EclipseLink API Reference''. | For more information, see the ''EclipseLink API Reference''. | ||
Line 229: | Line 194: | ||
==Configuring Attribute Name== | ==Configuring Attribute Name== | ||
− | All object-relational data type mappings map an attribute in a Java object to field in the database. The attribute name is the name of the attribute being mapped. The name is as specified in the reference class (see [[#Configuring Reference Class] | + | All object-relational data type mappings map an attribute in a Java object to field in the database. The attribute name is the name of the attribute being mapped. The name is as specified in the reference class (see [[#Configuring Reference Class|Configuring Reference Class]]). |
− | + | ||
− | + | ||
+ | This table summarizes which object-relational data type mappings support this option. | ||
− | + | <span id="Table 50-4"></span> | |
{| class="RuleFormal" dir="ltr" title="Mapping Support for Attribute Name" summary="This table summarizes which mappings support ort for Attribute Name" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | {| class="RuleFormal" dir="ltr" title="Mapping Support for Attribute Name" summary="This table summarizes which mappings support ort for Attribute Name" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
! id="r1c1-t5" align="left" valign="bottom" | '''Mapping''' | ! id="r1c1-t5" align="left" valign="bottom" | '''Mapping''' | ||
− | ! id="r1c2-t5" align="left" valign="bottom" | ''' | + | ! id="r1c2-t5" align="left" valign="bottom" | '''Using the Workbench''' |
− | ! id="r1c3-t5" align="left" valign="bottom" | '''[[#How to Configure Attribute Name Using Java]<br>''' | + | ! id="r1c3-t5" align="left" valign="bottom" | '''[[#How to Configure Attribute Name Using Java|Using Java]]<br>''' |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r2c1-t5" headers="r1c1-t5" align="left" | | | id="r2c1-t5" headers="r1c1-t5" align="left" | | ||
− | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Structure Mapping|Object-relational data type structure mapping ]] | |
| headers="r2c1-t5 r1c2-t5" align="left" | | | headers="r2c1-t5 r1c2-t5" align="left" | | ||
[[Image:unsupport.gif|Supported]]<br> | [[Image:unsupport.gif|Supported]]<br> | ||
Line 272: | Line 236: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r6c1-t5" headers="r1c1-t5" align="left" | | | id="r6c1-t5" headers="r1c1-t5" align="left" | | ||
− | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] |
| headers="r6c1-t5 r1c2-t5" align="left" | | | headers="r6c1-t5 r1c2-t5" align="left" | | ||
[[Image:unsupport.gif|Supported]]<br> | [[Image:unsupport.gif|Supported]]<br> | ||
Line 279: | Line 243: | ||
|} | |} | ||
− | + | ||
===How to Configure Attribute Name Using Java=== | ===How to Configure Attribute Name Using Java=== | ||
Line 285: | Line 249: | ||
Use <tt>org.eclipse.persistence.mappings.DatabaseMapping</tt> method <tt>setAttributeName</tt> to specify the name of the attribute being mapped. | Use <tt>org.eclipse.persistence.mappings.DatabaseMapping</tt> method <tt>setAttributeName</tt> to specify the name of the attribute being mapped. | ||
− | + | This table shows how to use this method with a <tt>ReferenceMapping</tt> that maps the <tt>manager</tt> attribute of the <tt>Employee</tt> class. | |
− | + | <span id="Example 50-2"></span> | |
− | ''''' | + | ''''' Configuring Attribute Name in Java''''' |
− | + | <source lang="java"> | |
− | + | ||
− | + | ||
public void customize(ClassDescriptor descriptor) { | public void customize(ClassDescriptor descriptor) { | ||
ReferenceMapping managerMapping = new new ReferenceMapping(); | ReferenceMapping managerMapping = new new ReferenceMapping(); | ||
Line 301: | Line 263: | ||
descriptor.addMapping (managerMapping); | descriptor.addMapping (managerMapping); | ||
} | } | ||
− | + | </source> | |
− | + | ||
For more information, see the ''EclipseLink API Reference''. | For more information, see the ''EclipseLink API Reference''. | ||
Line 312: | Line 273: | ||
All object-relational data type mappings require the name of database field to which their specified attribute is mapped. This field name can be the column name of a database table or the name of a field in an object type created on the database. | All object-relational data type mappings require the name of database field to which their specified attribute is mapped. This field name can be the column name of a database table or the name of a field in an object type created on the database. | ||
− | + | This table summarizes which object-relational data type mappings support this option. | |
− | + | <span id="Table 50-5"></span> | |
− | + | ||
− | + | ||
{| class="RuleFormal" dir="ltr" title="Mapping Support for Field Name" summary="This table summarizes which mappings support Field Name" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | {| class="RuleFormal" dir="ltr" title="Mapping Support for Field Name" summary="This table summarizes which mappings support Field Name" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
! id="r1c1-t6" align="left" valign="bottom" | '''Mapping''' | ! id="r1c1-t6" align="left" valign="bottom" | '''Mapping''' | ||
− | ! id="r1c2-t6" align="left" valign="bottom" | ''' | + | ! id="r1c2-t6" align="left" valign="bottom" | '''Using the Workbench''' |
− | ! id="r1c3-t6" align="left" valign="bottom" | '''[[#How to Configure Field Name Using Java]<br>''' | + | ! id="r1c3-t6" align="left" valign="bottom" | '''[[#How to Configure Field Name Using Java|Using Java]]<br>''' |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r2c1-t6" headers="r1c1-t6" align="left" | | | id="r2c1-t6" headers="r1c1-t6" align="left" | | ||
− | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Structure Mapping|Object-relational data type structure mapping ]] | |
| headers="r2c1-t6 r1c2-t6" align="left" | | | headers="r2c1-t6 r1c2-t6" align="left" | | ||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
Line 353: | Line 312: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r6c1-t6" headers="r1c1-t6" align="left" | | | id="r6c1-t6" headers="r1c1-t6" align="left" | | ||
− | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] |
| headers="r6c1-t6 r1c2-t6" align="left" | | | headers="r6c1-t6 r1c2-t6" align="left" | | ||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
Line 360: | Line 319: | ||
|} | |} | ||
− | + | ||
===How to Configure Field Name Using Java=== | ===How to Configure Field Name Using Java=== | ||
Line 366: | Line 325: | ||
Use the object-relational data type mapping method <tt>setFieldName</tt> to specify the database field to which the attribute is mapped. | Use the object-relational data type mapping method <tt>setFieldName</tt> to specify the database field to which the attribute is mapped. | ||
− | + | This example shows how to use this method with an <tt>ObjectArrayMapping</tt> that maps the <tt>Employee</tt> class attribute <tt>phone</tt> to database field name <tt>PHONE_NUMBER</tt>. | |
− | + | <span id="Example 50-3"></span> | |
− | ''''' | + | ''''' Configuring Field Name in Java''''' |
− | + | <source lang="java"> | |
− | + | ||
public void customize(ClassDescriptor descriptor) { | public void customize(ClassDescriptor descriptor) { | ||
ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); | ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); | ||
Line 382: | Line 340: | ||
descriptor.addMapping (phonesMapping); | descriptor.addMapping (phonesMapping); | ||
} | } | ||
− | + | </source> | |
− | + | ||
For more information, see the ''EclipseLink API Reference''. | For more information, see the ''EclipseLink API Reference''. | ||
Line 393: | Line 350: | ||
Certain object-relational data type mappings require the specification of the data type or structure name of the field being mapped. The structure name is the name of the array or table type that defines the field. | Certain object-relational data type mappings require the specification of the data type or structure name of the field being mapped. The structure name is the name of the array or table type that defines the field. | ||
− | + | This table summarizes which object-relational data type mappings support this option. | |
− | + | <span id="Table 50-6"></span> | |
− | + | ||
− | + | ||
{| class="RuleFormal" dir="ltr" title="Mapping Support for Structure Name" summary="This table summarizes which mappings support Structure Name" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | {| class="RuleFormal" dir="ltr" title="Mapping Support for Structure Name" summary="This table summarizes which mappings support Structure Name" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all" | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
! id="r1c1-t7" align="left" valign="bottom" | '''Mapping''' | ! id="r1c1-t7" align="left" valign="bottom" | '''Mapping''' | ||
− | + | ! id="r1c3-t7" align="left" valign="bottom" | '''Using the Workbench''' | |
− | ! id="r1c3-t7" align="left" valign="bottom" | ''' | + | ! id="r1c4-t7" align="left" valign="bottom" | '''[[#How to Configure Structure Name Using Java|Using Java]]<br>''' |
− | ! id="r1c4-t7" align="left" valign="bottom" | '''[[#How to Configure Structure Name Using Java]<br>''' | + | |
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r2c1-t7" headers="r1c1-t7" align="left" | | | id="r2c1-t7" headers="r1c1-t7" align="left" | | ||
− | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Structure Mapping|Object-relational data type structure mapping ]] | |
| headers="r2c1-t7 r1c2-t7" align="left" | | | headers="r2c1-t7 r1c2-t7" align="left" | | ||
− | |||
− | |||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
| headers="r2c1-t7 r1c4-t7" align="left" | | | headers="r2c1-t7 r1c4-t7" align="left" | | ||
Line 418: | Line 370: | ||
[[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Reference Mapping|Object-relational data type reference mapping ]] | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Reference Mapping|Object-relational data type reference mapping ]] | ||
| headers="r3c1-t7 r1c2-t7" align="left" | | | headers="r3c1-t7 r1c2-t7" align="left" | | ||
− | |||
− | |||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
| headers="r3c1-t7 r1c4-t7" align="left" | | | headers="r3c1-t7 r1c4-t7" align="left" | | ||
Line 427: | Line 377: | ||
[[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Array Mapping|Object-relational data type array mapping ]] | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Array Mapping|Object-relational data type array mapping ]] | ||
| headers="r4c1-t7 r1c2-t7" align="left" | | | headers="r4c1-t7 r1c2-t7" align="left" | | ||
− | |||
− | |||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
| headers="r4c1-t7 r1c4-t7" align="left" | | | headers="r4c1-t7 r1c4-t7" align="left" | | ||
Line 436: | Line 384: | ||
[[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Object Array Mapping|Object-relational data type object array mapping]] | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Object Array Mapping|Object-relational data type object array mapping]] | ||
| headers="r5c1-t7 r1c2-t7" align="left" | | | headers="r5c1-t7 r1c2-t7" align="left" | | ||
− | |||
− | |||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
| headers="r5c1-t7 r1c4-t7" align="left" | | | headers="r5c1-t7 r1c4-t7" align="left" | | ||
Line 443: | Line 389: | ||
|- align="left" valign="top" | |- align="left" valign="top" | ||
| id="r6c1-t7" headers="r1c1-t7" align="left" | | | id="r6c1-t7" headers="r1c1-t7" align="left" | | ||
− | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] | + | [[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Nested Table Mapping|Object-relational data type nested table mapping ]] |
| headers="r6c1-t7 r1c2-t7" align="left" | | | headers="r6c1-t7 r1c2-t7" align="left" | | ||
− | |||
− | |||
[[Image:unsupport.gif|Unsupported.]]<br> | [[Image:unsupport.gif|Unsupported.]]<br> | ||
| headers="r6c1-t7 r1c4-t7" align="left" | | | headers="r6c1-t7 r1c4-t7" align="left" | | ||
Line 465: | Line 409: | ||
<span id="Example 50-4"></span> | <span id="Example 50-4"></span> | ||
''''' Configuring Structure Name in Java''''' | ''''' Configuring Structure Name in Java''''' | ||
+ | <source lang="java"> | ||
public void customize(ClassDescriptor descriptor) { | public void customize(ClassDescriptor descriptor) { | ||
ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); | ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); | ||
Line 470: | Line 415: | ||
phonesMapping.setAttributeName("phones"); | phonesMapping.setAttributeName("phones"); | ||
phonesMapping.setFieldName("PHONE_NUMBERS"); | phonesMapping.setFieldName("PHONE_NUMBERS"); | ||
− | phonesMapping.setStructureName("PHONE_ARRAY_TYPE"); | + | phonesMapping.setStructureName("PHONE_ARRAY_TYPE"); // set structure name |
− | + | // add this mapping to descriptor | |
descriptor.addMapping (phonesMapping); | descriptor.addMapping (phonesMapping); | ||
} | } | ||
− | + | </source> | |
− | + | ||
For more information, see the ''EclipseLink API Reference''. | For more information, see the ''EclipseLink API Reference''. | ||
Line 486: | Line 430: | ||
[[Category: EclipseLink User's Guide]] | [[Category: EclipseLink User's Guide]] | ||
− | [[Category: | + | [[Category: Release 1]] |
[[Category: Task]] | [[Category: Task]] | ||
+ | [[Category: ORM]] |
Latest revision as of 09:48, 20 May 2009
Contents
For information on how to create EclipseLink mappings, see Creating a Mapping.
This table lists the types of object-relational data type mappings that you can configure and provides a cross-reference to the type-specific chapter that lists the configurable options supported by that type.
For more information, see the following:
Configuring Common Object-Relational Data Type Mapping Options
Thist able lists the configurable options shared by two or more object-relational data type mapping types. In addition to the configurable options described here, you must also configure the options described for the specific object-relational data type mapping types (see Object-Relational Data Type Mapping Types), as shown in the following table.
Option to Configure | Workbench |
Java |
---|---|---|
Configuring Reference Class
When mapping an attribute that involves a relationship to another class, you must specify the reference class–the Java class to which the mapped attribute refers.
This table summarizes which object-relational data type mappings support this option.
Mapping | Using the Workbench | Using Java |
---|---|---|
How to Configure Reference Class Using Java
Use org.eclipse.persistence.mappings.ForeignReferenceMapping method setReferenceClass to specify the target class of the attribute being mapped.
Tihs example shows how to use this method with a ReferenceMapping that maps the manager attribute of the Employee class.
Configuring Reference Class in Java
public void customize(ClassDescriptor descriptor) { ReferenceMapping managerMapping = new ReferenceMapping(); managerMapping.setReferenceClass("Employee.class"); // set reference class managerMapping.setAttributeName("manager"); // add this mapping to descriptor descriptor.addMapping (managerMapping); }
For more information, see the EclipseLink API Reference.
Configuring Attribute Name
All object-relational data type mappings map an attribute in a Java object to field in the database. The attribute name is the name of the attribute being mapped. The name is as specified in the reference class (see Configuring Reference Class).
This table summarizes which object-relational data type mappings support this option.
Mapping | Using the Workbench | Using Java |
---|---|---|
How to Configure Attribute Name Using Java
Use org.eclipse.persistence.mappings.DatabaseMapping method setAttributeName to specify the name of the attribute being mapped.
This table shows how to use this method with a ReferenceMapping that maps the manager attribute of the Employee class.
Configuring Attribute Name in Java
public void customize(ClassDescriptor descriptor) { ReferenceMapping managerMapping = new new ReferenceMapping(); managerMapping.setReferenceClass("Employee.class"); managerMapping.setAttributeName("manager"); // set attribute name '''// add this mapping to descriptor''' descriptor.addMapping (managerMapping); }
For more information, see the EclipseLink API Reference.
Configuring Field Name
All object-relational data type mappings require the name of database field to which their specified attribute is mapped. This field name can be the column name of a database table or the name of a field in an object type created on the database.
This table summarizes which object-relational data type mappings support this option.
Mapping | Using the Workbench | Using Java |
---|---|---|
How to Configure Field Name Using Java
Use the object-relational data type mapping method setFieldName to specify the database field to which the attribute is mapped.
This example shows how to use this method with an ObjectArrayMapping that maps the Employee class attribute phone to database field name PHONE_NUMBER.
Configuring Field Name in Java
public void customize(ClassDescriptor descriptor) { ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); phonesMapping.setReferenceClass("Employee.class"); phonesMapping.setAttributeName("phone"); phonesMapping.setFieldName("PHONE_NUMBER"); '''// set field name''' '''// add this mapping to descriptor''' descriptor.addMapping (phonesMapping); }
For more information, see the EclipseLink API Reference.
Configuring Structure Name
Certain object-relational data type mappings require the specification of the data type or structure name of the field being mapped. The structure name is the name of the array or table type that defines the field.
This table summarizes which object-relational data type mappings support this option.
Mapping | Using the Workbench | Using Java |
---|---|---|
How to Configure Structure Name Using Java
Use the object-relational data type mapping method setStructureName to specify the structure of the attribute being mapped.
This example shows how to use this method with an ObjectArrayMapping that maps the Employee class attribute phones to database field name PHONE_NUMBERS of type PHONE_ARRAY_TYPE.
Configuring Structure Name in Java
public void customize(ClassDescriptor descriptor) { ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); phonesMapping.setReferenceClass("Employee.class"); phonesMapping.setAttributeName("phones"); phonesMapping.setFieldName("PHONE_NUMBERS"); phonesMapping.setStructureName("PHONE_ARRAY_TYPE"); // set structure name // add this mapping to descriptor descriptor.addMapping (phonesMapping); }
For more information, see the EclipseLink API Reference.