This chapter describes how to create relational and object-relational data type descriptors.
This chapter includes the following sections:
For information on how to create more than one type of descriptors, see Chapter 118, "Creating a Descriptor".
After you create a descriptor, you must configure its various options (see Chapter 119, "Configuring a Descriptor") and use it to define mappings.
For complete information on the various types of mapping that TopLink supports, see Chapter 17, "Introduction to Mappings" and Chapter 120, "Creating a Mapping".
For complete information on the various types of descriptor that TopLink supports, see Section 16.1, "Descriptor Types".
For more information, see Chapter 24, "Introduction to Object-Relational Data Type Descriptors".
You cannot create an object-relational data type descriptor using Oracle JDeveloper or TopLink Workbench: you must use Java code. For more information on creating descriptors in Java code, see the Oracle Fusion Middleware Java API Reference for Oracle TopLink.
For more information, see Section 24.1, "Object-Relational Data Type Descriptors".
Use the ObjectRelationalDescriptor
class to define an object-relational data type descriptor. This class extends RelationalDescriptor
to add the following methods:
setStructureName
: call this method to set the name of the object-relational data type structure that represents the object class in the data source.
addFieldOrdering
: call this method repeatedly to define the order in which object attributes are persisted to the data source. This defines a field index that TopLink uses if your object-relational data type data source driver uses JDBC indexed arrays.
Example 25-1 shows an Employee
object that is mapped to an Oracle Database using its object-relational data type features.
public class Employee { Long id; String firstName; String lastName; ... }
Example 25-2 shows the object-relational data type database type (Employee_t
) created to model the Employee
object within the database. Such an object-relational data type database type is also known as a structure. This example also shows how to create and populate a database table (called department
) that stores instances of the Employee_t
audio tape.
Example 25-2 Employee Object-Relational Data Type Data Model
CREATE TYPE EMPLOYEE_T AS OBJECT(ID NUMBER(10), F_NAME VARCHAR2(100), L_NAME VARCHAR2(100),) NOT FINAL; CREATE TABLE EMPLOYEES OF EMPLOYEE_T;
Example 25-3 shows how to code an object-relational data type descriptor in Java to describe the object-relational data type database type Employee_t
.
Example 25-3 Creating an Object-Relational Data Type Descriptor in Java
import oracle.toplink.objectrelational.*; ... ObjectRelationalDescriptor descriptor = new ObjectRelationalDescriptor(); descriptor.setJavaClass(Employee.class); descriptor.setTableName("EMPLOYEES"); descriptor.setStructureName("EMPLOYEE_T"); descriptor.setPrimaryKeyFieldName("ID"); descriptor.addFieldOrdering("ID"); descriptor.addFieldOrdering("F_NAME"); descriptor.addFieldOrdering("L_NAME"); descriptor.addDirectMapping("id", "OBJECT_ID"); descriptor.addDirectMapping("firstName", "F_NAME"); descriptor.addDirectMapping("lastName", "L_NAME");
For more information on configuring object-relational data type descriptors, see Chapter 26, "Configuring an Object-Relational Data Type Descriptor".
For more information on the object-relational data type mappings that TopLink supports, see Chapter 40, "Introduction to Object-Relational Data Type Mappings".