| 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");
関連項目
詳細は、次を参照してください。