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

From Eclipsepedia

Jump to: navigation, search
m (@Converter)
m
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{EclipseLink_UserGuide
 +
|info=y
 +
|toc=n
 +
|eclipselink=y
 +
|eclipselinktype=JPA
 +
|api=y
 +
|apis=
 +
* [http://www.eclipse.org/eclipselink/api/latest/org/eclipse/persistence/annotations/Converter.html @Converter]}}
 +
 
=@Converter=
 
=@Converter=
{{EclipseLink_API
 
|1=org.eclipse.persistence.mappings.converters.Converter}}
 
 
You can use <tt>@Converter</tt> annotation to specify a custom converter for modification of the data value(s) during the reading and writing of a mapped attribute.
 
You can use <tt>@Converter</tt> annotation to specify a custom converter for modification of the data value(s) during the reading and writing of a mapped attribute.
 
<source lang="java">  
 
<source lang="java">  
Line 11: Line 18:
 
  }
 
  }
 
</source>
 
</source>
This table lists attributes of the <tt>@Converter</tt> annotation.
 
  
<span id="Table 19-7"></span>
+
{{EclipseLink_AttributeTable
{| class="RuleFormalWideMax" dir="ltr" title="Attributes of the @Converter Annotation" summary="This table lists the attributes of EclipseLink JPA @Converter annotation" width="100%" border="1" frame="border" rules="all" cellpadding="3" frame="border" rules="all"
+
|caption=<span id="@Converter Attributes">@Converter Annotation Attributes</span>
|- align="left" valign="top"
+
|content=<tr>
! id="r1c1-t12" align="left" valign="bottom" | '''Attribute'''
+
<td>'''<tt>name</tt>'''</td>
! id="r1c2-t12" align="left" valign="bottom" | '''Description'''
+
<td>Set this attribute to the <tt>String</tt> name for your converter. Ensure that this name is unique across the persistence unit</td>
! id="r1c3-t12" align="left" valign="bottom" | '''Default'''
+
<td></td>
! id="r1c4-t12" align="left" valign="bottom" | '''Required or Optional'''
+
<td>Yes</td>
|- align="left" valign="top"
+
</tr>
| id="r2c1-t12" headers="r1c1-t12" align="left" |
+
<tr>
<tt>name</tt>
+
<td>'''<tt>converterClass</tt>'''</td>
| headers="r2c1-t12 r1c2-t12" align="left" |
+
<td>Set this attribute to the <tt>Class</tt> of your converter. This class must implement the EclipseLink <tt>org.eclipse.persistence.mappings.converters.Converter</tt> interface.</td>
Set this attribute to the <tt>String</tt> name for your converter. Ensure that this name is unique across the persistence unit
+
<td></td>
| headers="r2c1-t12 r1c3-t12" align="left" |
+
<td>Yes</td>
no default
+
</tr>
| headers="r2c1-t12 r1c4-t12" align="left" |
+
}}
required
+
|- align="left" valign="top"
+
| id="r3c1-t12" headers="r1c1-t12" align="left" |
+
<tt>converterClass</tt>
+
| headers="r3c1-t12 r1c2-t12" align="left" |
+
Set this attribute to the <tt>Class</tt> of your converter. This class must implement the EclipseLink <tt>org.eclipse.persistence.mappings.converters.Converter</tt> interface.
+
| headers="r3c1-t12 r1c3-t12" align="left" |
+
no default
+
| headers="r3c1-t12 r1c4-t12" align="left" |
+
required
+
|}
+
  
  
This example shows how to use the <tt>@Converter</tt> annotation to specify <tt>Employee</tt> field <tt>gender</tt>.
+
The following example shows how to use the <tt>@Converter</tt> annotation to specify <tt>Employee</tt> field <tt>gender</tt>.
  
<span id="Example 19-7"></span>
+
<span id="Example: @Converter Annotation"></span>
''''' Usage of the @Converter Annotation'''''
+
======''Example: @Converter Annotation''======
 
<source lang="java">
 
<source lang="java">
 
  @Entity
 
  @Entity
Line 66: Line 61:
 
{{EclipseLink_JPA
 
{{EclipseLink_JPA
 
|previous=[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings/Default_Conversions_and_Converters|Default Conversions and Converters]]
 
|previous=[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings/Default_Conversions_and_Converters|Default Conversions and Converters]]
|next=[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings/Default_Conversions_and_Converters/Converter/Type Converter|@TypeConverter]]
+
|next=[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings/Default_Conversions_and_Converters/TypeConverter|@TypeConverter]]
 
|up=[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings/Default_Conversions_and_Converters|Default Conversions and Converters]]
 
|up=[[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings/Default_Conversions_and_Converters|Default Conversions and Converters]]
|version=2.1.0
+
|version=2.2.0 DRAFT
 
}}
 
}}

Latest revision as of 10:35, 4 May 2011

EclipseLink JPA

link="http://wiki.eclipse.org/EclipseLink"
EclipseLink
Website
Download
Community
Mailing ListForumsIRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source

Elug api package icon.png Key API


[edit] @Converter

You can use @Converter annotation to specify a custom converter for modification of the data value(s) during the reading and writing of a mapped attribute.

 
 @Target({TYPE, METHOD, FIELD})
 @Retention(RUNTIME)
 public @interface Converter {
    String name();
    Class converterClass(); 
 }
@Converter Annotation Attributes
Attribute Description Default Required?
name Set this attribute to the String name for your converter. Ensure that this name is unique across the persistence unit Yes
converterClass Set this attribute to the Class of your converter. This class must implement the EclipseLink org.eclipse.persistence.mappings.converters.Converter interface. Yes


The following example shows how to use the @Converter annotation to specify Employee field gender.

[edit] Example: @Converter Annotation
 @Entity
 public class Employee implements Serializable{
     ...
     @Basic
     @Converter (
         name="genderConverter",
         converterClass=org.myorg.converters.GenderConverter.class
     )
     @Convert("genderConverter")
     public String getGender() {
         return gender;
     }
     ...
 }


Eclipselink-logo.gif
Version: 2.2.0 DRAFT
Other versions...