Oracle TopLink Developer's Guide 10g Release 3 (10.1.3) B13593-01 |
|
![]() Previous |
![]() Next |
Use transformation mappings for specialized translations for how a value is represented in Java and how it is represented in the database.
Tip: Use transformation mappings only when mapping multiple fields into a single attribute. Because of the complexity of transformation mappings, it is often easier to perform the transformation with a converter or getter and setter methods of a direct-to-field mapping. See Chapter 38, "Configuring a Relational Direct-to-Field Mapping" for more information. |
Figure 36-10 illustrates a transformation mapping. The values from the B_DATE
and B_TIME
fields are used to create a java.util.Date
to be stored in the birthDate
attribute.
Often, a transformation mapping is appropriate when values from multiple fields are used to create an object. This type of mapping requires that you provide an attribute transformation that is invoked when reading the object from the database. This must have at least one parameter that is an instance of Record
. In your attribute transformation, you can use Record
method get
to retrieve the value in a specific column. Your attribute transformation can specify a second parameter, when it is an instance of Session
. The Session
performs queries on the database to get additional values needed in the transformation. The transformation should return the value to be stored in the attribute.
Transformation mappings also require a field transformation for each field, to be written to the database when the object is saved. The transformation returns the value to be stored in that field.
See Chapter 48, "Configuring a Relational Transformation Mapping" for more information.