Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Configuring an Object-Relational Data Type Mapping (ELUG)"

m
m (Configuring Structure Name)
Line 402: Line 402:
 
|- 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="r1c2-t7" align="left" valign="bottom" | '''How to Use JDeveloper'''
 
 
! id="r1c3-t7" align="left" valign="bottom" | '''How to Use Workbench'''
 
! id="r1c3-t7" align="left" valign="bottom" | '''How to Use Workbench'''
 
! id="r1c4-t7" align="left" valign="bottom" | '''[[#How to Configure Structure Name Using Java]<br>'''
 
! id="r1c4-t7" align="left" valign="bottom" | '''[[#How to Configure Structure Name Using Java]<br>'''
Line 409: Line 408:
 
[[Introduction%20to%20Object-Relational%20Data%20Type%20Mappings%20(ELUG)#Object-Relational Data Type Structure Mapping|Object-relational data type structure mapping ]]
 
[[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>
 
| headers="r2c1-t7 r1c3-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 415:
 
[[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>
 
| headers="r3c1-t7 r1c3-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 422:
 
[[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>
 
| headers="r4c1-t7 r1c3-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 429:
 
[[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>
 
| headers="r5c1-t7 r1c3-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 445: Line 436:
 
[[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>
 
| headers="r6c1-t7 r1c3-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" |

Revision as of 12:57, 30 November 2007

This section describes how to configure an object-relational data type mapping.

For information on how to configure EclipseLink mappings options common to two or more mapping types, see Configuring a Mapping.

For information on how to create EclipseLink mappings, see Creating a Mapping (ELUG)#Creating a Mapping.


Introduction to Object-Relational Data Type Mapping Configuration

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.


Configuring Object-Relational Data Type Mappings

If you are creating... See Also...

Object-relational data type structure mapping

[Configuring%20an%20Object-Relational%20Data%20Type%20Structure%20Mapping%20(ELUG)#Chapter 46, "Configuring an Object-Relational Data Type Structure Mapping"]

Object-relational data type reference mapping

[Configuring%20an%20Object-Relational%20Data%20Type%20Reference%20Mapping%20(ELUG)#Chapter 47, "Configuring an Object-Relational Data Type Reference Mapping"]

Object-relational data type array mapping

[Configuring%20an%20Object-Relational%20Data%20Type%20Array%20Mapping%20(ELUG)#Chapter 48, "Configuring an Object-Relational Data Type Array Mapping"]

Object-relational data type object array mapping

[Configuring%20an%20Object-Relational%20Data%20Type%20Object%20Array%20Mapping%20(ELUG)#Chapter 49, "Configuring an Object-Relational Data Type Object Array Mapping"]

Object-relational data type nested table mapping )

[Configuring%20an%20Object-Relational%20Data%20Type%20Nested%20Table%20Mapping%20(ELUG)#Chapter 51, "Configuring an Object-Relational Data Type Nested Table Mapping"]


For more information, see the following:

  • [Introduction%20to%20Mappings%20(ELUG)#Chapter 16, "Introduction to Mappings"]
  • [Introduction%20to%20Relational%20Mappings%20(ELUG)#Chapter 32, "Introduction to Relational Mappings"]


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]), as shown in #Table 50-1.


Common Options for Object-Relational Data Type Mappings

Option to Configure JDeveloper
Workbench
Java

Reference class (see [[#Configuring Reference Class])

Unsupported

Unsupported

Supported

Attribute name (see [[#Configuring Attribute Name])

Unsupported

Unsupported

Supported

Field name (see [[#Configuring Field Name])

Unsupported

Unsupported

Supported

Structure name (see [[#Configuring Structure Name])

Unsupported

Unsupported

Supported

Read-only (see [Configuring%20a%20Mapping%20(ELUG)#Configuring Read-Only Mappings])

Unsupported

Unsupported

Supported

Method or direct field access (see [Configuring%20a%20Mapping%20(ELUG)#Configuring Method or Direct Field Accessing at the Mapping Level])

Unsupported

Unsupported

Supported

Indirection (lazy loading) (see [Configuring%20a%20Mapping%20(ELUG)#Configuring Indirection (Lazy Loading)])

Unsupported

Unsupported

Supported

Container policy (see [Configuring%20a%20Mapping%20(ELUG)#Configuring Container Policy])

Unsupported

Unsupported

Supported


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 Support for Reference Class

Mapping How to Use Workbench [[#How to Configure Reference Class Using Java]

Object-relational data type structure mapping

Unsupported.

Supported.

Object-relational data type reference mapping

Unsupported.

Supported.

Object-relational data type array mapping

Unsupported.

Unsupported.

Object-relational data type object array mapping

Unsupported.

Supported.

Object-relational data type nested table mapping

Unsupported.

Supported.



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 Support for Attribute Name

Mapping How to Use Workbench [[#How to Configure Attribute Name Using Java]

Object-relational data type structure mapping

Supported

Supported.

Object-relational data type reference mapping

Supported

Supported.

Object-relational data type array mapping

Supported

Supported.

Object-relational data type object array mapping

Supported

Supported.

Object-relational data type nested table mapping

Supported

Supported.



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.

Thist able summarizes which object-relational data type mappings support this option.


Mapping Support for Field Name

Mapping How to Use Workbench #How to Configure Field Name Using Java

Object-relational data type structure mapping

Unsupported.

Supported.

Object-relational data type reference mapping

Unsupported.

Supported.

Object-relational data type array mapping

Unsupported.

Supported.

Object-relational data type object array mapping

Unsupported.

Supported.

Object-relational data type nested table mapping

Unsupported.

Supported.



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 Support for Structure Name

Mapping How to Use Workbench [[#How to Configure Structure Name Using Java]

Object-relational data type structure mapping

Unsupported.

Unsupported.

Object-relational data type reference mapping

Unsupported.

Unsupported.

Object-relational data type array mapping

Unsupported.

Supported.

Object-relational data type object array mapping

Unsupported.

Supported.

Object-relational data type nested table mapping )

Unsupported.

Supported.



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.



Copyright Statement

Back to the top