Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/JPA/Basic JPA Development/Mapping/Basic Mappings/Default Conversions and Converters/ObjectTypeConverter"

m (@ObjectTypeConverter Annotation and XML)
m
Line 1: Line 1:
 +
{{EclipseLink_UserGuide}}
 
{{EclipseLink_API
 
{{EclipseLink_API
 
|1=*[http://www.eclipse.org/eclipselink/api/ org.eclipse.persistence.mappings.converters.ObjectTypeConverter]
 
|1=*[http://www.eclipse.org/eclipselink/api/ org.eclipse.persistence.mappings.converters.ObjectTypeConverter]

Revision as of 12:43, 18 June 2010




Elug api package icon.png Key API {{{apis}}}

@ObjectTypeConverter Annotation and <object-type-converter> XML

You can use the @ObjectTypeConverter annotation to specify an org.eclipse.persistence.mappings.converters.ObjectTypeConverter that converts a fixed number of database data value(s) to Java object value(s) during the reading and writing of a mapped attribute.

 @Target({TYPE, METHOD, FIELD})
 @Retention(RUNTIME)
 public @interface ObjectTypeConverter {
    String name();
    Class dataType() default void.class;
    Class objectType() default void.class;
    ConversionValue[] conversionValues();
    String defaultObjectValue() default "";
 }

This table lists attributes of the @ObjectTypeConverter annotation.

Attribute Description Default Required or Optional

name

Set this attribute to the String name for your converter. Ensure that this name is unique across the persistence unit

no default

required

dataType

Set this attribute to the type stored in the database.

void.class1

optional

objectType

Set the value of this attribute to the type stored on the entity.

void.class1

optional

conversionValues

Set the value of this attribute to the array of conversion values (instances of ConversionValue: String objectValue and String dataValue. See the Usage of the @ObjectTypeConverter Annotation example, to be used with the object converter.

no default

required

defaultObjectValue

Set the value of this attribute to the default object value. Note that this argument is for dealing with legacy data if the data value is missing.

empty String

optional


1 The default is inferred from the type of the persistence field or property.

This example shows how to use the @ObjectTypeConverter annotation to specify the Employee field gender.

@ObjectTypeConverter Annotation

 public class Employee implements Serializable{
     ...
     @ObjectTypeConverter (
         name="genderConverter",
         dataType=java.lang.String.class,
         objectType=java.lang.String.class,
         conversionValues={
             @ConversionValue(dataValue="F", objectValue="Female"),
             @ConversionValue(dataValue="M", objectValue="Male")}
     )
     @Convert("genderConverter")
     public String getGender() {
         return gender;
     }
     ...
 }

<object-type-converter> XML

  <object-type-converter name="gender-converter"
	object-type="model.Gender" data-type="java.lang.String">
	<conversion-value object-value="Male" data-value="M" />
	<conversion-value object-value="Female" data-value="F" />
  </object-type-converter>



Eclipselink-logo.gif
Version: 2.1.0
Other versions...