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

前
 
次
 

@WriteTransformer

TranformationMapping@WriteTransformerを使用して、単一の属性値を単一のデータベース列値に変換します。@WriteTransformers注釈を使用して、複数の変換をラップします。

注釈要素

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

表2-80 @WriteTransformerの注釈要素

注釈要素 説明 デフォルト

column

(オプション)値を書き込む必要がある列。

単一のWriteTransfomerが属性に注釈を付与している場合、属性名が列名として使用されます。

@javax.persistence.Column

method

(オプション) マップされたクラスに必要なStringメソッドの名前。このメソッドは、データベース列に書き込まれる値を戻します。

注意: DDL生成とリターン・ポリシーをサポートする場合、Objectだけでなく特定のタイプを戻すようにメソッドを定義する必要があります。例:
public Time getStartTime()

デフォルトでBasicとしてマップされないように、メソッドに@Transientが必要な場合があります。


transformerClass

(オプション) FieldTransformerインタフェースを実装するユーザー定義済クラス。これは、クラスをインスタンス化し、buildFieldValueメソッドを使用して、データベース列に書き込まれる値を作成します。

注意: DDL生成とリターン・ポリシーをサポートする場合、インタフェースで定義されたようにObjectだけでなく、関連するJavaタイプを戻すようにクラス内のメソッドbuildFieldValueを定義する必要があります。例:
public Time buildFieldValue(Object instance, String fieldName, Session session)。

void.class



注意:

transformerClassまたはmethodのいずれか(両方ではない)を指定する必要があります。


使用方法

読取り専用マッピングに@WriteTransformerを定義することはできません。

TransformationMappingが書込み専用ではない場合、データベース列値から属性値への変換を定義するReadTransformerが含まれる必要があります。

フィールドとトランスフォーマの関連付けの構成

FieldTransformerの使用は非介入的です。ドメイン・オブジェクトは、EclipseLinkインタフェースを実装したり特別な変換メソッドを提供する必要はありません。

メソッド・ベース・フィールド・トランスフォーマは、AbstractTransformationMappingメソッドaddFieldTransformationを使用し、使用するデータベース・フィールド名とドメイン・オブジェクト・メソッドの名前を渡すことで構成できます。

クラス・ベース・フィールド・トランスフォーマは、AbstractTransformationMappingメソッドaddFieldTransformerを使用し、データベース・フィールド名およびorg.eclipse.persistence.mappings.Transfomers.FieldTransformerのインスタンスを渡すことで構成できます。

FieldTransformerを作成するには、FieldTransformerAdapterを拡張すると便利です。

トランスフォーメーション・マッピングとともに@WriteTransformer注釈を使用する方法の例は、「@Transformation注釈の使用」を参照してください。

関連項目

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