ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

@Converter

@Converter注釈を使用して、マップ済属性の読取りおよび書込み中にデータ値を変更するための、カスタム・コンバータを指定します。

注釈要素

表2-15は、この注釈の要素を示しています。

表2-15 @Converterの注釈要素

注釈要素 説明 デフォルト

name

コンバータのStringの名前。永続性ユニットで一意である必要があります。

なし

converterClass

コンバータのクラス。このクラスは、org.eclipse.persistence.mappings.converters.Converterインタフェースを実装する必要があります。

なし


使用方法

@Converterを使用して、マッピングとともに使用できる名前付きコンバータを定義します。コンバータは、エンティティ・クラス、メソッドまたはフィールドに定義できます。基本またはElementCollectionマッピングで@Convert注釈を使用してコンバータを指定します。

非JPAコンバータ注釈の使用

EclipseLinkは、(JPAのデフォルト・タイプ・マッピングに加えて)次の一連の非JPAコンバータ注釈を提供します。

永続性プロバイダは、次の順序でコンバータ注釈を検索します。

  1. @Convert

  2. @Enumerated

  3. @Lob

  4. @Temporal

  5. シリアライズ(自動)

次のクラスでコンバータを指定します。

次のマッピングとともにコンバータを使用します。

コンバータがその他のタイプのマッピング注釈によって指定されている場合、例外がスローされます。

例2-32に、@Converter注釈を使用してgenderフィールドのコンバータ・クラスを指定する方法を示します。

例2-32 @Converter注釈の使用

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

例2-33に、eclipselink-orm.xmlファイルの<converter>要素を使用する方法を示します。

例2-33 <converter> XMLの使用

<entity class="Employee">
...
    <attributes>
    ...
      <basic name="gender">
        <convert>genderConverter</convert>
        <converter name="genderConverter" class="org.myorg.converters.GenderConverter"/>
      </basic>
    ...
    </attributes>
</entity>

関連項目

詳細は、次を参照してください。