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

前
 
次
 

@Customizer

@Customizerを使用して、org.eclipse.persistence.config.DescriptorCustomizerを実装し、すべてのメタデータ処理が完了した後にエンティティのクラス・ディスクリプタに対して実行するクラスを指定します。

注釈要素

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

表2-18 @Customizerの注釈要素

注釈要素 説明 デフォルト

java.lang.Class

(必須)エンティティのディスクリプタに適用するディスクリプタ・カスタマイザの名前



使用方法

この注釈を使用して、TopLinkネイティブAPIによってマッピング・メタデータをカスタマイズまたは拡張します。@Customizerを使用すると、その他のTopLink機能および構成にアクセスできます。

@Customizerは、エンティティ、MappedSuperclassまたは埋込み可能クラスに指定できます。


注意:

@Customizerは、親クラスから継承されません。


例2-36に、次のDescriptorCustomerとともに@Customizer注釈を使用する方法を示します。

public class MyCustomizer implements DescriptorCustomizer {
  public void customize(ClassDescriptor descriptor) {
    DirectToFieldMapping genderMapping = (DirectToFieldMapping)descriptor.getMappingForAttributeName("gender");
    ObjectTypeConverter converter = new ObjectTypeConverter();
    convert.addConversionValue("M", Gender.MALE);
    convert.addConversionValue("F", Gender.FEMALE);
    genderMapping.setConverter(converter);
  }
}

例2-36 @Customizer注釈の使用

@Entity
 @Table(name="EMPLOYEE")
 @Customizer(mypackage.MyCustomizer.class)
 public class Employee implements Serializable {
     ...
 }

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

例2-37 <customizer> XMLの使用

<entity class="Employee">
  <table name="EMPLOYEE"/>
  <customizer class="mypackage.MyCustomizer"/>
...
</entity>

関連項目

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