TopLinkアプリケーションのカスタマイズでは、カスタム・データ・タイプの作成からEclipseLink JPA拡張機能の使用まで、様々な方法を使用できます。
TopLinkは、様々なリレーショナル・データ・ソースおよび非リレーショナル・データ・ソースに適応するように設計されています。
TopLink APIで直接サポートされていないデータ・ソースをTopLinkと統合するには、EISプロジェクト(第71章「EISプロジェクトの概要」を参照)またはXMLプロジェクト(第47章「XMLプロジェクトの概要」を参照)を使用することをお薦めします。
EISプロジェクトを使用すると、JCAアダプタをサポートする非リレーショナル・データ・ソース、および索引付き、マップ済またはXMLなどのサポートされているEISレコード・タイプをTopLink対応のアプリケーションに統合できます。ターゲット・データ・ソース用のJCAアダプタが存在しない場合は、統合の際にアダプタの作成に専念できます。同時に、JCA仕様に準拠したアプリケーションを構築できます。これにはカスタム開発も必要ですが、TopLinkクラスを拡張するよりも効率的です。また、これによりその他の任意のプロジェクトでも活用できるJCAアダプタを提供し、プロジェクトの価値を高めます。
XMLプロジェクトを使用すると、TopLink対応のアプリケーションとWebサービスまたはその他のXMLメッセージ・ベースの設計を統合できます。
この章では、TopLink APIが提供するその他のカスタマイズ・オプションについても説明します。
TopLinkでは、最も一般的なJavaデータ・タイプをすべてサポートします。表13-1では、カスタム・データ・タイプのサポートに使用できるTopLinkマッピング拡張機能をリストします。また、データ・タイプと独自のJavaタイプの間で変換が可能なオブジェクト・コンバータも作成できます。
表13-1 カスタム・データ・タイプのマッピング拡張機能
拡張機能 | 説明 |
---|---|
オブジェクト・タイプ・コンバータ(17.2.6.3項「オブジェクト・タイプ・コンバータ」を参照) |
一定数のデータ値をJavaオブジェクトと対応させる、ダイレクト・マッピングおよびダイレクト・コレクション・マッピングの拡張機能。スキーマの値がJavaの値と異なるときに、このコンバータを使用します。 |
シリアライズ・オブジェクト・コンバータ(17.2.6.1項「シリアライズ・オブジェクト・コンバータ」を参照) |
マルチメディア・データなどのシリアライズ可能なオブジェクトを、XML文書またはデータベースのバイナリ・ラージ・オブジェクト(BLOB)フィールドのBASE64要素などのデータ・ソースのバイナリ形式にマップできる、ダイレクト・マッピングおよびダイレクト・コレクション・マッピングの拡張機能。 |
タイプ変換コンバータ(17.2.6.2項「タイプ変換コンバータ」を参照) |
データ・ソース・タイプをJavaタイプに明示的に対応させる、ダイレクト・マッピングおよびダイレクト・コレクション・マッピングの拡張機能。たとえば、Javaの |
シンプル・タイプ・トランスレータ(17.2.6.4項「シンプル・タイプ・トランスレータ」を参照) |
XMLスキーマで定義した要素の |
ほとんどのパブリック・クラスのソース・コードは、<
TOPLINK_HOME
>\jlib\toplink-src.zip
で使用可能です。
これは、デバッグ目的のために提供されます。
セッション・カスタマイザを指定することで、実行時のセッションのカスタマイズができます。セッション・カスタマイザはJavaクラスの1つで、oracle.toplink.tools.sessionconfiguration.SessionCustomizer
インタフェースを実装します。
詳細は、次を参照してください。
『EclipseLink Developer's Guide』の「EclipseLink JPA Properties for Customization and Validation」の表の永続性単位プロパティeclipselink.session.customizer
(http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#How_to_Use_the_Persistence_Unit_Properties_for_Customization_and_Validation
)
ディスクリプタ・カスタマイザを指定することで、実行時のディスクリプタのカスタマイズができます。ディスクリプタ・カスタマイザはJavaクラスの1つで、oracle.toplink.tools.sessionconfiguration.DescriptorCustomizer
インタフェースを実装します。
詳細は、次を参照してください。
『EclipseLink Developer's Guide』の「How to Use the @Customizer Annotation」の項(http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#How_to_Use_the_.40Customizer_Annotation
)
『EclipseLink Developer's Guide』の「EclipseLink JPA Properties for Customization and Validation」の表の永続性単位プロパティeclipselink.descriptor.customizer.<ENTITY>
(http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#How_to_Use_the_Persistence_Unit_Properties_for_Customization_and_Validation
)
ディスクリプタのカスタマイズには、ディスクリプタ修正メソッドを使用できます。
詳細は、次を参照してください。
EclipseLink JPAアプリケーションを開発している場合は、EclipseLink JPAのメタデータ注釈およびXML拡張機能を使用してカスタマイズを行います。
詳細は、『EclipseLink Developer's Guide』の「Using EclipseLink JPA Extensions」(http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29
)を参照してください。