Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
前 |
次 |
@Basic
マッピングで@Mutable
を使用して、複合フィールド・タイプの値を置換するのではなく、変更できる(または変更できない)かどうかを指定します。可変マッピングは、変更追跡のパフォーマンスに影響する場合があります。属性変更追跡は、非可変マッピングを使用する場合にのみウィービングできます。
注釈要素
表2-33は、この注釈の要素を示しています。
使用方法
ほとんどの基本タイプ(int
、long
、float
、double
、String
、BigDecimal
など)は、可変ではありません。
デフォルトでは、Date
およびCalendar
タイプは可変ではないと想定されます。これらのタイプを可変にするには、@Mutable
注釈を使用します。グローバルな永続性プロパティeclipselink.temporal.mutable
を使用して、マッピングを可変として設定することもできます。
デフォルトでは、シリアライズされたタイプは可変と想定されます。@Mutable
注釈をfalse
に設定して、これらのタイプを可変でなくすることができます。
persistence.xml
ファイルにある永続性ユニットのDate
およびCalendar
フィールドの可変マッピングも構成できます。
例
例2-65に、@Mutable
注釈を使用してEmployee
フィールドのhireDate
を指定する方法を示します。
例2-65 @Mutable注釈の使用
@Entity
public class Employee implements Serializable {
...
@Temporal(DATE)
@Mutable
public Calendar getHireDate() {
return hireDate;
}
..
}
例2-66に、永続性ユニットのpersistence.xml
ファイルで、またはproperty
マップをインポートすることによって、可変マッピングを構成する方法を示します。
例2-66 persistence.xmlでの可変マッピングの指定
persistence.xml
ファイルを使用する場合:
<property name="eclipselink.temporal.mutable" value="true"/>
property
マップを使用する場合:
import org.eclipse.persistence.config.PersistenceUnitProperties;
propertiesMap.put(PersistenceUnitProperties.TEMPORAL_MUTABLE, "false");
関連項目
詳細は、次を参照してください。