ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLinkソリューション・ガイド
12
c
(12.1.2)
E47993-02
次
目次
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
このガイドで説明する新機能
12
c
(12.1.2)での新機能と変更された機能
このガイドのその他の主な変更
1
概要
1.1
このガイドについて
1.2
このドキュメントで使用している用語
1.3
基礎的な必知事項
1.4
ユース・ケース
2
Oracle TopLinkのインストール
2.1
概要
2.2
タスク1: 前提条件
2.3
タスク2: TopLinkのダウンロード
2.4
タスク3: インストーラの実行
2.5
その他の参考資料
3
WebLogic ServerでのTopLinkの使用
3.1
ソリューションの概要
3.1.1
WebLogic ServerでTopLinkを使用する利点
3.1.2
TopLinkおよびその他のFusion Middleware製品
3.2
ソリューションの実装
3.2.1
タスク1: 前提条件
3.2.2
オプションのタスク: WebLogic ServerでのEclipseLinkのリリースの更新(オプション)
3.2.3
タスク3: WebLogic ServerのJMX MBean拡張の構成
3.2.4
タスク4: ロギング統合の使用または再構成
3.2.4.1
ロギング統合の動作方法
3.2.4.2
管理コンソールでの永続性ユニットのロギング・レベルの表示
3.2.4.3
デフォルト・ロギング統合のオーバーライド
3.2.4.4
EclipseLinkのロギングを公開するためのWebLogic Serverの構成
3.2.4.5
その他の考慮事項
3.2.5
タスク5: EclipseLinkを使用したJavaアプリケーションへの永続性の追加
3.2.6
タスク6: データ・ソースの構成
3.2.6.1
JPAアプリケーションのデータ・ソースを構成する方法
3.2.6.2
グローバル・スコープのJTAデータ・ソースの構成
3.2.6.3
アプリケーション・スコープのJTAデータ・ソースの構成
3.2.6.4
非JTAデータ・ソースの構成およびアプリケーションのトランザクション管理
3.2.6.5
設定の一致の確認
3.2.7
タスク7: Oracle Databaseの高度な機能を使用するためのドメインの拡張
3.2.8
タスク8: WebLogic Serverの起動とアプリケーションのデプロイ
3.2.9
タスク9: アプリケーションの実行
3.2.10
タスク10: WebLogic Serverの永続性設定の構成および監視
3.3
その他の参考資料
4
GlassFish ServerでのTopLinkの使用
4.1
ソリューションの概要
4.1.1
GlassFish ServerでTopLinkを使用する利点
4.1.2
Fusion Middleware製品に対するGlassFish ServerとTopLinkの関係
4.2
ソリューションの実装
4.2.1
タスク1: 前提条件
4.2.2
タスク2: GlassFish Serverのインストール
4.2.3
タスク3: データ・ソースの設定
4.2.3.1
GlassFish ServerへのOracleデータベースのJDBCドライバの統合
4.2.3.2
リソースに対するJDBC接続プールの作成
4.2.3.3
JDBCリソースの作成
4.2.4
タスク4: persistence.xmlファイルの作成
4.2.4.1
永続性プロバイダの指定
4.2.4.2
Oracleデータベースの指定
4.2.4.3
ロギングの指定
4.2.5
タスク5: JPA用のGlassFish Serverの設定
4.2.6
タスク6: アプリケーションの作成
4.2.7
タスク7: GlassFish Serverに対するアプリケーションのデプロイ
4.2.8
タスク8: アプリケーションの実行
4.2.9
タスク9: アプリケーションの監視
4.3
その他の参考資料
5
JBoss 7 Application ServerでTopLinkを使用する方法
5.1
ソリューションの概要
5.2
ソリューションの実装
5.2.1
タスク1: 前提条件
5.2.2
タスク2: JBossのモジュールとしてのEclipseLinkの構成
5.2.3
タスク3: JBossのモジュールとしてのojdbc6.jarの追加
5.2.4
タスク4: ドライバ定義およびデータ・ソースの作成
5.2.5
タスク5: ユーザーの作成
5.2.6
タスク6: JBossのプロパティの変更
5.2.7
タスク7: その他の要件
5.2.8
タスク8: JBossの起動
5.3
その他の参考資料
6
IBM WebSphere Application ServerでTopLinkを使用する方法
6.1
ソリューションの概要
6.2
ソリューションの実装
6.2.1
タスク1: 前提条件
6.2.2
タスク2: 永続性ユニットの構成
6.2.3
タスク3: EclipseLinkを使用するためのサーバーおよびアプリケーションの構成
6.2.3.1
EclipseLinkをグローバルで利用できるようにするためのサーバーの変更
6.2.3.2
アプリケーションEARへのEclipseLinkのパッケージ
6.2.3.3
WARへのEclipseLinkのパッケージ
6.3
その他の参考資料
7
Native TopLinkからの移行
7.1
ソリューションの概要
7.2
ソリューションの実装
7.2.1
タスク1: 前提条件
7.2.2
タスク2: 非推奨および削除されたネイティブAPIの置換
7.2.2.1
置換されたAPI
7.2.2.2
非推奨のAPI
7.2.2.3
削除されたAPI
7.2.2.4
その他のAPIの変更
7.2.3
タスク3: パッケージの名前変更
7.2.4
タスク4: XML構成ファイルの変換
7.2.4.1
セッションXML
7.2.4.2
デプロイメントXML
7.2.4.3
永続性XML
7.2.4.4
ORM XML
7.2.5
タスク5: Oracle TopLink Workbenchプロジェクトの変換(オプション)
7.3
その他の参考資料
8
HibernateからTopLinkへの移行
8.1
ソリューションの概要
8.2
主なタスク
8.2.1
タスク1: 前提条件
8.2.2
タスク1: Hibernateのエンティティ注釈の変換
8.2.2.1
SelectBeforeUpdate、dynamicInsertおよびdynamicUpdate属性の変換
8.2.2.2
OptimisticLock属性の変換
8.2.3
タスク2: Hibernateのカスタム・シーケンス・ジェネレータ注釈の変換
8.2.4
タスク3: Hibernateのマッピング注釈の変換
8.2.4.1
@ForeignKey注釈の変換
8.2.4.2
@Cache注釈の変換
8.2.5
タスク4: persistence.xmlファイルの変更
8.2.5.1
変更されたpersistence.xmlファイル
8.2.5.2
データベース表の削除および作成
8.2.5.3
データベース表の作成または拡張
8.2.6
タスク5: Hibernate APIからEclipseLink APIへの変換
8.3
その他の参考資料
9
コンポジット永続性ユニットによる複数データベースの使用
9.1
ソリューションの概要
9.1.1
コンポジット永続性ユニットの要件
9.2
ソリューションの実装
9.2.1
タスク1: コンポジット永続性ユニットの構成
9.2.2
タスク2: コンポジット永続性ユニットの使用
9.2.3
タスク3: コンポジット永続性ユニットのデプロイ
9.3
その他の参考資料
9.3.1
関連Javadoc
10
クラスタ内のアプリケーションのスケーリング
10.1
ソリューションの概要
10.2
ソリューションの実装
10.2.1
タスク1: キャッシュの整合性の構成
10.2.1.1
エンティティのキャッシュの無効化
10.2.1.2
キャッシュのリフレッシュ
10.2.1.3
エンティティのキャッシュの期限の設定
10.2.1.4
オプティミスティック・ロックの設定
10.2.1.5
キャッシュ・コーディネーションの使用
10.2.2
タスク2: EclipseLinkの有効化の確認
10.2.3
タスク3: すべてのアプリケーション・サーバーがクラスタ内にあることの確認
10.2.4
データのスケールのためのデータ・パーティション化の使用
10.2.4.1
クラスタ化されたデータベースおよびOracle RAC
10.3
その他の参考資料
11
Software as a Serviceの提供
11.1
ソリューションの概要
12
JPAエンティティおよびJAXB Beanの拡張可能化
12.1
JPAエンティティの拡張可能化
12.1.1
拡張可能なJPAエンティティを作成およびサポートするための主要タスク
12.1.1.1
タスク1: エンティティの構成
12.1.1.2
タスク2: スキーマの設計
12.1.1.3
タスク3: 追加マッピングの提供
12.1.1.4
タスク4: MetaDataSourceを使用した拡張の外部化
12.1.2
コード例
12.2
JAXB Beanの拡張可能化
12.2.1
主な手順
12.2.1.1
タスク1: Beanの構成
12.2.1.2
タスク2: 追加マッピングの提供
12.2.2
コード例
12.2.2.1
基本設定
12.2.2.2
テナントの定義
12.3
その他の参考資料
13
外部のメタデータ・ソースの使用
13.1
ソリューションの概要
13.2
eclipselink-orm.xmlファイルの外部使用
13.3
主なタスク
13.3.1
タスク1: 永続性ユニットの構成
13.3.2
タスク2: サーバーの構成
13.4
その他の参考資料
14
TopLinkを使用したテナントの分離
14.1
ソリューションの概要
14.2
単一表マルチテナントの使用
14.2.1
単一表マルチテナントを使用する場合の主なタスク
14.2.1.1
タスク1: 前提条件
14.2.1.2
タスク2: 単一表マルチテナントの有効化
14.2.1.3
タスク3: テナント識別子列の指定
14.2.1.4
コンテキスト・プロパティおよびキャッシュ範囲の構成
14.2.1.5
タスク4: 操作および問合せの実行
14.2.1.6
タスク5: 継承階層での単一表マルチテナントの使用
14.3
テナントごとの表マルチテナントの使用
14.3.1
テナントごとの表マルチテナントを使用する場合の主なタスク
14.3.1.1
タスク1: 前提条件
14.3.1.2
タスク2: テナントごとの表マルチテナントの有効化
14.3.1.3
タスク3: テナント表識別子の指定
14.3.1.4
タスク4: 実行時のコンテキスト・プロパティの指定
14.3.1.5
タスク5: 操作および問合せの実行
14.4
VPDマルチテナントの使用
14.4.1
VPDマルチテナントを使用する場合の主なタスク
14.4.1.1
タスク1: 前提条件
14.4.1.2
タスク2: 仮想プライベート・データベースの構成
14.4.1.3
タスク3: エンティティまたはマップ済スーパークラスの構成
14.4.1.4
タスク4: 基準生成の無効化
14.4.1.5
タスク5: persistence.xmlの構成
14.5
その他の参考資料
15
XMLへのJPAのマッピング
15.1
ソリューションの概要
15.1.1
XMLバインディングの理解
15.1.2
JAXBの理解
15.1.3
MOXyの理解
15.1.4
XMLデータ表現の理解
15.2
XMLへのJPAエンティティのバインディング
15.2.1
XMLへのJPAリレーションシップのバインディング
15.2.1.1
タスク1: アクセッサ・タイプの定義およびクラスのインポート
15.2.1.2
タスク2: 私有のリレーションシップのマッピング
15.2.1.3
タスク3: 共有参照リレーションシップのマッピング
15.2.1.4
JPAエンティティ
15.2.2
XMLへの複合主キーのバインディング
15.2.2.1
タスク1: XMLアクセッサ・タイプの定義
15.2.2.2
タスク2: ターゲット・オブジェクトの作成
15.2.2.3
タスク3: ソース・オブジェクトの作成
15.2.3
XMLへの埋込みIDクラスのバインディング
15.2.3.1
タスク1: XMLアクセッサ・タイプの定義
15.2.3.2
タスク2: ターゲット・オブジェクトの作成
15.2.3.3
タスク3: ソース・オブジェクトの作成
15.2.3.4
タスク5: PhoneNumberCustomizerクラスとしてのDescriptorCustomizerの実装
15.2.4
EclipseLinkのXMLバインディング文書の使用
15.3
XMLテキスト・ノードへの単純なJava値のマッピング
15.3.1
属性に対する値のマッピング
15.3.1.1
Javaオブジェクトからのマッピング
15.3.1.2
OXMメタデータ形式でのマッピングの定義
15.3.2
テキスト・ノードへの値のマッピング
15.3.2.1
単純なテキスト・ノードに対する値のマッピング
15.3.2.2
単純な順序でのテキスト・ノードへの値のマッピング
15.3.2.3
サブ要素のテキスト・ノードに対する値のマッピング
15.3.2.4
位置によるテキスト・ノードへの値のマッピング
15.4
XMLメタデータ表現を使用したJAXB注釈のオーバーライド
15.4.1
タスク1: XMLでの高度なマッピングの定義
15.4.2
タスク2: JAXBContextの使用方法の構成
15.4.3
タスク3: JAXB実装としてのMOXyの指定
15.5
マッピングに対するXPath述語の使用
15.5.1
XPath述語の理解
15.5.2
位置に基づくマッピング
15.5.3
属性値に基づくマッピング
15.5.3.1
タスク1: Customerエンティティの作成
15.5.3.2
タスク2: Addressエンティティの作成
15.5.3.3
タスク3: PhoneNumberエンティティの作成
15.5.4
セルフ・マッピング
15.6
動的JAXB/MOXyの使用
15.6.1
タスク1: XMLスキーマからの動的JAXBContextのブートストラップ
15.6.1.1
XMLスキーマからのブートストラップ
15.6.1.2
XMLスキーマ
15.6.1.3
スキーマのインポート/インクルードの処理
15.6.1.4
EntityResolverを実装して渡す方法
15.6.1.5
エラー処理
15.6.1.6
ClassLoaderの指定
15.6.2
タスク2: 動的エンティティの作成とXMLへのマーシャル
15.6.2.1
動的エンティティの作成
15.6.2.2
XMLへの動的エンティティのマーシャリング
15.6.3
タスク3: XMLからの動的エンティティのアンマーシャル
15.6.3.1
XMLからの動的エンティティのアンマーシャル
15.6.3.2
動的エンティティからのデータの取得
15.6.3.3
DynamicTypeを使用した、動的エンティティのイントロスペクション
15.7
その他の参考資料
16
JSONドキュメントからのオブジェクトの変換
16.1
ソリューションの概要
16.2
ソリューションの実装
16.2.1
タスク1: JSONドキュメントのマーシャリングおよびアンマーシャリング
16.2.2
タスク2: JSONバインディングの指定
16.2.3
タスク3: JSONデータ型の指定
16.2.4
タスク4: 属性のサポート
16.2.5
タスク5: ルート要素の非サポート
16.2.6
タスク5 名前空間の使用
16.2.7
タスク6: コレクションの使用
16.2.8
タスク7: ルートレベル・コレクションのマッピング
16.2.9
タスク8: テキスト値のラッピング
16.3
その他の参考資料
17
コンテナ外部のJPAのテスト
17.1
JPAデプロイメントの理解
17.1.1
EntityManagerの使用
17.2
persistence.xmlファイルの構成
17.2.1
主なタスク
17.2.1.1
タスク1: persistence.xmlファイルの使用
17.2.1.2
タスク2: EntityManagerFactoryのインスタンス化
17.3
プロパティ・マップの使用
17.3.1
主なタスク
17.3.1.1
タスク1: persistence.xmlファイルの構成
17.3.1.2
タスク2: ブートストラップAPIの構成
17.3.1.3
タスク3: EntityManagerFactoryのインスタンス化
17.4
ウィービングの使用
17.4.1
Java SE環境でのウィービングの無効化および有効化
17.4.2
Java EE環境でのウィービングの無効化および有効化
17.5
その他の参考資料
17.5.1
関連Javadoc
18
パフォーマンスの向上
18.1
パフォーマンス機能
18.1.1
オブジェクト・キャッシング
18.1.1.1
キャッシング注釈
18.1.1.2
@Cache注釈の使用
18.1.2
問合せ
18.1.2.1
読取り専用問合せ
18.1.2.2
結合フェッチ
18.1.2.3
バッチ読取り
18.1.2.4
フェッチ・サイズ
18.1.2.5
ページ区切り
18.1.2.6
キャッシュの使用方法
18.1.3
マッピング
18.1.3.1
読取り専用オブジェクト
18.1.3.2
ウィービング
18.1.4
トランザクション
18.1.5
データベース
18.1.5.1
接続プーリング
18.1.5.2
パラメータ化されたSQLとSQL文のキャッシュ
18.1.5.3
バッチ書込み
18.1.6
ツール
18.2
EclipseLinkが有効なアプリケーションを監視および最適化
18.2.1
パフォーマンス最適化の推奨事項およびヒント
18.2.2
タスク1: EclipseLinkプロファイラを使用したEclipseLinkのパフォーマンスの測定
18.2.2.1
EclipseLinkプロファイラの有効化
18.2.2.2
プロファイラの結果へのアクセスおよび解釈
18.2.3
タスク2: アプリケーションのパフォーマンス問題の原因特定
18.2.4
タスク3: パフォーマンスが悪いアプリケーション・コンポーネントの変更
18.2.4.1
一般的なパフォーマンスの最適化の識別
18.2.4.2
スキーマ
18.2.4.3
マッピングおよびディスクリプタ
18.2.4.4
キャッシュ
18.2.4.5
データ・アクセス
18.2.4.6
問合せ
18.2.4.7
アプリケーション・サーバーとデータベースの最適化
18.2.5
タスク4: パフォーマンスの再測定
19
TopLink GridでのOracle Coherenceを使用したアプリケーションのスケーリング
19.1
ソリューションの概要
19.2
ソリューションの実装
19.3
その他の参考資料
20
RESTfulデータ・サービスを介したJPAエンティティの公開
20.1
ソリューションの概要
20.2
ソリューションの実装
20.2.1
手順1: 前提条件
20.2.2
手順2: アプリケーションの作成および構成
20.2.3
手順3: RESTfulデータ・サービスのURIの基本の理解
20.2.4
手順4: JPA、JAXBまたはJSONを使用したエンティティの表現
20.2.4.1
リレーションシップ
20.2.5
手順5: 永続性ユニットに対する操作用のクライアント呼び出しの発行
20.2.5.1
ヘッダー内でのメディア形式の指定
20.2.5.2
ロギングについて
20.2.6
手順6: セキュリティの実装
20.2.7
手順7: RESTfulデータ・サービスの応答の構造の理解
20.2.7.1
基本データ型
20.2.7.2
リンクおよびリレーションシップ
20.3
その他の参考資料
20.4
RESTfulデータ・サービスのAPIリファレンス
エンティティ操作
FIND
PERSIST
MERGE
DELETE
リレーションシップに対するエンティティ操作
READ
ADD
REMOVE
問合せ操作
結果を返す問合せ一覧
更新/削除の問合せ
単一リクエスト問合せ
基本操作
既存の永続性ユニットの列挙
メタデータ操作
永続性ユニットのタイプの列挙
永続性ユニットの問合せの列挙
特定のエンティティの説明
21
TopLinkライブ・データ問合せを使用したデータの更新
21.1
ソリューションの概要
21.1.1
Oracle Database CQNの概要およびTopLinkのキャッシュのトラッキング
21.1.2
TopLinkライブ・データ問合せの作成および使用
21.2
ソリューションの実装
21.2.1
手順1: 前提条件
21.2.2
手順2: データベース権限の付与
21.2.3
手順3: ライブ・データ問合せおよびCQNサブスクリプションの作成
21.3
その他の参考資料
22
キャッシュを無効にするためのデータベース・イベントの使用
22.1
ソリューションの概要
22.2
ソリューションの実装
22.2.1
タスク1: データベースおよび表の設定
22.2.2
タスク2: ユーザー権限の付与
22.2.3
タスク3: クラスパスの設定
22.2.4
タスク4: 変更通知に参加するクラスの識別
22.2.5
タスク5: データベース・イベント・リスナーの追加
22.2.6
タスク6: Javaファイルの編集
22.2.6.1
オプティミスティック・ロックの設定
22.2.6.2
変更通知からのクラスの除外(オプション)
22.2.6.3
セカンダリ表での変更追跡(オプション)
22.3
ソリューションの制限
22.4
その他の参考資料
23
NoSQLデータベースでTopLinkを使用する方法
23.1
ソリューションの概要
23.2
ソリューションの実装
23.2.1
タスク1: データのマッピング
23.2.2
タスク2: IDの定義
23.2.3
タスク3: マッピングの定義
23.2.4
タスク4: ロックの使用
23.2.5
タスク5: 問合せの定義
23.2.5.1
JPQL問合せ
23.2.5.2
ネイティブ問合せ
23.2.6
タスク6: データベースへの接続
23.3
その他の参考資料
24
Oracle DatabaseでOracle TopLinkを使用する方法
24.1
ソリューションの概要
24.2
ソリューションの実装
24.2.1
Oracleプラットフォームに固有のAPIの使用
24.2.2
EclipseLinkでのOracle PL/SQLの使用
24.2.2.1
Oracle PL/SQLストアド関数の実行
24.2.2.2
Oracleストアド・プロシージャでのPL/SQL引数の処理
24.2.3
Oracle仮想プライベート・データベースの使用
24.2.4
Oracleプロキシ認証の使用
24.2.4.1
主なタスク
24.2.4.2
キャッシュおよびセキュリティ
24.2.4.3
行レベルのセキュリティのためのOracle仮想プライベート・データベースの使用
24.2.5
Oracle RACでのEclipseLinkの使用
24.2.5.1
Java EEアプリケーションからのRACが有効なデータベースへのアクセス
24.2.5.2
スタンドアロン・アプリケーションからのRACが有効なデータベースへの接続
24.2.6
Oracle Spatial and Graphの使用
24.3
その他の参考資料