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

前
 
次
 

@Transformation

トランスフォーメーション・マッピングとともに@Transformationを使用して、データベース列から属性値への変換を定義します(トランスフォーメーション・マッピングが書込み専用ではない場合。書込み専用の場合、@ReadTransformer注釈が必要です)。

注釈要素

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

表2-71 @Transformationの注釈要素

注釈要素 説明 デフォルト

fetch

(オプション)フィールドまたはプロパティの値を遅延ロードする必要があるか、または即時にフェッチする必要があるかどうかを定義します。

  • EAGER方針は、値を即時にフェッチする必要がある永続性プロバイダ・ランタイムの要件です。

  • LAZY方針は、永続性プロバイダ・ランタイムのヒントです。

EAGER

optional

(オプション)フィールドまたはプロパティの値がnullかどうかのヒント。プリミティブ型では無視され、オプションではないと見なされます。

true


使用方法

読取り専用マッピングではない場合、WriteTransformer注釈またはWriteTransformers注釈のいずれかを指定する必要があります。各WriteTransformerは、属性値から単一データベース列値への変換を定義します(列はWriteTransformerで指定されます)。

例2-114に、@Transformation注釈を使用する方法を示します。

例2-114 @Transformation注釈の使用

@Transformation(fetch=FecthType.LAZY, optional="true")
@ReadTransformer(class=package.MyNormalHoursTransformer.class)
@WriteTranformers({
   @WriteTranformer(column=@Column(name="START_TIME"), 
      method="getStartDate"),
   @WriteTranformer(column=@Column(name="END_TIME"), 
      class=package.MyTimeTransformer.class)
})
@Mutable
@ReturnUpdate
@Access(AccessType.PROPERTY)
@AccessMethods(get="getNormalHours", set="setNormalHours")
@Properties({
   @Property(name="x", value="y")
})

例2-115に、eclipselink-orm.xmlファイルの<transformation> XML要素を使用する同一マッピングを示します。

例2-115 <transformation> XMLの使用

<transformation name="normalHours" fetch="LAZY" optional="true">
     <read-transformer method="buildNormalHours"/>
     <write-transformer method="getStartTime">
             <column name="START_TIME"/>
     </write-transformer>
     <write-transformer class="package.MyTimeTransformer">
             <column name="END_TIME"/>
     </write-transformer>
     <mutable/>
     <return-update/>
     <access type="PROPERTY"/>
     <access-methods get="getNormalHours" set="setNormalHours"/>
     <properties>
        <property name="x" value="y"/>
     </properties>
</transformation>

関連項目

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