言語|国を設定する

各国のポータルページを見る

各国の最新情報は、以下の国別ポータルページからご確認ください。

EX297

エキスパート試験 ーPersistenceー

情報を表示しています:

Red Hat エキスパート試験  ーPersistenceーは、Java Persistence API (JPA) と JBoss® Hibernate® を使用する Java™ アプリケーションを作成、保守する実務能力をテストするものです。

Red Hat エキスパート試験®  ーPersistenceーは、受験者が、Java™ Persistence API (JPA) と JBoss Hibernate の使用に関連した実務能力を証明するものです。JPA は、リレーショナルデータを管理するための Java プログラミング言語フレームワークです。Hibernate は、JPA を実装するハイパフォーマンスなオブジェクトリレーショナル永続化およびクエリサービスです。

RHCJD 認定試験の各種ツール、環境、要件に慣れておいてください。

準備

この試験の受験者は、同試験を受験する前に Red Hat 認定 JBoss 開発者 (RHCJD) を取得することが推奨されますが、必須ではありません。

試験のための学習ポイント

試験の準備に役立つように、試験に出ると予測される作業領域を示します。Red Hat は、試験の内容を追加、変更、削除する権利を保持します。変更する場合は事前に公表されます。

試験のタスク

Red Hat エキスパート試験 ーPersistenceーの受験者は、JPA と Hibernate を使用して以下のタスクを実行できる必要があります。タスクに関連した推奨参考資料の一覧も掲載しました。学習に活用してください。

JPA/Hibernate を設定する
  • 以下を含む PersistenceUnit プロパティを設定する。
    • 設定ファイルの場所
    • Java EE 固有の設定の詳細
    • Java SE 固有の設定の詳細
    • Hibernate 固有の設定の詳細
  • Java SE アプリケーションから PersistenceUnit に接続する
  • Java EE アプリケーションから PersistenceUnit に接続する
  • PersistenceUnit のデフォルトプロパティ値を上書きする
単一のテーブルまたはオブジェクトのマッピング
  • 値が生成される仕組みやタイミングなど、ID ジェネレータの動作を理解する
  • 以下を含む主キーのマッピング方法を理解する。
    • 生成したキーの使用
    • シンプルなビジネスキーのマッピング
    • 複合キーのマッピング
  • オブジェクトの ID とビジネスの等価性を理解する
  • テーブル名、列名、列の幅、列の属性 (Null 許容、一意、型など) など、
    データベース固有の情報を設定する
  • JPA/Hibernate を使用して既存の Java オブジェクトを永続オブジェクトに変換する
  • 基本的な JPA データ型を、対応するデータベースの型にマッピングする
  • 新しい Java 永続オブジェクトを作成して、既存のデータベーステーブルをマッピングする
  • 遅延ロードと即時ロードを使用する方法とタイミングを理解する
  • コレクションと値型の最適なマッピング手法を理解して使用する
  • 永続オブジェクトにおける Java/オブジェクトモデル固有のプロパティと動作を処理する。これには以下が含まれます。
    • シリアル化
    • 一時的なプロパティ
    • 生成および計算されたプロパティ
    • 不変プロパティ
    • 値型
    • 共依存プロパティ (プロパティの有効値が別のプロパティの値に
      依存する)
JPA/Hibernate を使用してオブジェクトのリレーションシップをマッピングする
  • 以下を含む (しかし以下に限定されない) リレーションシップをマッピングする方法を理解する。
    • 値のリレーションシップ (詳細オブジェクトを含む場合など)
    • 親/子のリレーションシップ
    • 1 対 1 のリレーションシップ (単方向および双方向)
    • 多対 1 および 1 対多のリレーションシップ (単方向および双方向)
    • 多対多のリレーションシップ (単方向および双方向)
  • 以下を含む (しかし以下に限定されない) デフォルトのマッピング動作を理解する。
    • 外部キーの名前
    • 関連テーブルの名前
  • 外部キーの使用方法を理解し、リレーションシップの作成時に各テーブルを結合する
  • リレーションシップに基づく複合主キーのマッピング方法を理解する
  • JPA/Hibernate コレクション (セット、マップリスト、バッグ) を理解し、それらをオブジェクトおよびテーブルのリレーションシップにマッピングする方法を
    理解する
  • 各種コレクションによるパフォーマンスへの影響を理解する
  • 遅延ロードと即時ロードによるパフォーマンスとコードへの影響を含め、遅延ロードと即時ロードを使用する方法とタイミングを
    理解する
  • 既存のテーブルとリレーションシップのセットを使用して、それらに対応する Java 永続オブジェクトグラフを
    作成する
  • 各種関連付けを含む既存のオブジェクトモデルを永続ストアにマッピングする
  • 所定のビジネスプロセスに対して最適なロード手法を決定する
JPA/Hibernate を使用して階層型オブジェクトのリレーションシップをマッピングする
  • JPA/Hibernate を使用してさまざまなオブジェクト階層を表す方法を理解する
  • JPA/Hibernate を使用して既存の Java オブジェクト階層を永続オブジェクトに変換する
  • 既存のテーブルリレーションシップのセットをオブジェクト階層として表現する (普通預金口座、
    クレジットカード、ローン口座など)
  • ポリモーフィックなクエリおよび関連付けを理解する
  • さまざまな継承手法の利点と制約を理解する
  • さまざまなオブジェクト階層に最適なデータベースの表現を分析して決定する
トランザクションの動作を理解する (ACID)
  • 以下の条件でトランザクションのコンテキストを取得して使用する。
    • Java EE/CMT
    • Java EE/BMT
    • JPA API 使用の Java SE
  • Java EE で永続コンテキストをトランザクションにバインドする方法を理解する
  • EJB3 でのトランザクションのコンテキストの伝播を理解する
  • 永続コンテキストレベルでのトランザクションのロールバックの結果を理解する
  • トランザクションの並行処理のリスクを理解する
  • データの損失/破損とパフォーマンスのトレードオフを評価する
永続オブジェクトの取得
  • JPA/Hibernate のロード手法を理解する。
    • 遅延ロード
    • サブセレクトロード
    • 一括ロード
  • 高度なクエリオプションを理解して使用する。
    • HQL/JPA QL
    • Criteria API
    • ネイティブクエリ (SQL)
  • 実行時に即時フェッチ機能を使用する
  • 名前付きパラメータを使用する
  • LazyInitializationException を予測して回避する
  • JPA/Hibernate のパフォーマンスを分析して改善する
  • JPA の楽観的ロックと Hibernate の悲観的ロックの拡張機能を理解して使用する
永続オブジェクトの操作
  • 以下のようなエンティティの状態を理解する。
    • 一時的
    • 永続的
    • 接続済み
    • 分離済み
    • 削除済み
  • JPA API を使用してエンティティ/エンティティグラフの状態を変更する方法を理解する
  • 永続コンテキストのライフサイクルと、管理対象エンティティへの影響を理解する
  • JPA/Hibernate 一括処理機能を適用する。
    • API 使用パターン
    • DML クエリ
  • 最適な実装およびカスケード設定を決定して適用し、オブジェクトグラフを操作する
  • 一括処理を使用するタイミングを評価する

知っておくべきこと

ドキュメントとトレーニング

Red Hat の試験方法は実技形式なので、経験が最も良い準備になります。経験を積んだユーザーでも知識が一部欠けていることがありますが、トレーニングや自己学習で経験を効果的に補えます。特にトレーニングによって経験を飛躍的に積むことができます。Red Hat の JBoss Hibernate Technology (JB297) コースは、試験のほとんどの内容をカバーしています。以前のバージョンで扱った試験トピックは変更される場合があります。

試験中に利用できるドキュメントは、試験対象のバージョンの JBoss Enterprise Application Platform の公式ドキュメントと、製品に付属するサンプルファイルや追加ドキュメントに制限されます。製品に通常付属するものも含まれます。

試験中に jboss.org や hibernate.org などの Wiki を利用することはできません。これらの Wiki は有益な資料であり、試験に関連した内容が掲載されている場合がありますが、その形態から試験中の利用には適していません。試験の対象は受験者であり、Wiki の読者や編集者ではありません。

試験にハードコピーおよび電子文書を持ち込むことは禁止されています。ノートや書籍、その他の資料も持ち込めません。インターネットアクセスも厳しく制限されます。これらの事項に注意して学習を進めてください。

環境

試験で扱う環境は Red Hat Enterprise Linux® 5.4 システムです。このため、Linux または UNIX の使用経験があると役立ちます。ただし、この試験はオペレーティングシステム固有のスキルを問うのではく、JPA/Hibernate に関するスキルをテストすることを目的としているため、Linux の幅広い経験は必要ありません。作業のための完全なデスクトップ環境が用意され、参照用の基本コマンドリストと、Red Hat Enterprise Linux に付属する man ページやその他ドキュメントが提供されます。

Linux のスキルを練習する環境として、Fedora を無料で使用できます。Live CD バージョンを使用すると、Fedora をコンピュータにインストールせずに操作できます。Red Hat Enterprise Linux と完全に同じ環境ではありませんが、求められる習熟度としては十分に近い環境です。

トライアル試験のダウンロード

RHCJD 認定試験の各種ツール、環境、要件に慣れておいてください。

概要資料のダウンロード
トライアル試験のダウンロード

試験の形式

Red Hat エキスパート試験  ーPersistenceーは、100% 実技形式の試験です。受験者は、詰め込んだ知識をただ思い出すのではなく、タスクを行って知識とスキルを示すことが求められます。一般的な IT の認定試験では、A、B、C、または D を選択しなさい、あるいは、もっと不人気な「該当するものすべてを選びなさい」という問題が出題されます。Red Hat エキスパート試験  ーPersistenceーでは、そのような問題は出題されません。実際のところ、問題はまったく出されません。その代わり、実環境が用意され、受講者は一連の実際のタスクを実行します。たとえば、JPA マッピングアノテーションに関する一連の問題に解答するのではなく、実際に継続的な関連付けを作成して保守するように求められます。そのため、オンライン上に存在する「ブレインダンプ」やその他の情報はどれも疑いを持って見るのがよいでしょう。この試験で唯一最良の情報ソースは本ドキュメントです。

Red Hat エキスパート試験  ーPersistenceーの試験時間は 4 時間です。試験開始に先立って受験者本人確認と情報収集のための時間がとられます。

試験の環境

開発ツール

デスクトップ環境に加えて、インストールおよび設定済みの JBoss Developer Studio 3 (JBDS) が提供されます。 この試験は JBDS の試験ではないため、試験のタスクを行うのに JBDS の知識や使用方法は問われません。ただし、JBDS は JPA/Hibernate アプリケーションの開発と保守のための優れたツールであることから、JBDS の経験とスキルがあると確実に試験に役立つでしょう。サポート対象の JBDS を利用できない場合は、無料版をダウンロードできます。まだ Red Hat に登録していない場合は、無料の Red Hat アカウントを作成する必要があります。無料ダウンロードのための Red Hat への登録を希望しない場合は、標準の Eclipse ディストリビューションに含まれる JBoss Tools 4 プラグインが試験の練習に適しています。

試験で使用するプロジェクトは Maven で作成されています。JBDS を使用しない場合は、標準のテキストエディタ (gedit や vi など)、コマンドライン、および Maven を使用できます。試験は閉じた環境で実施され、Maven はオフラインモードで稼働します。ローカル環境にインポートされていない Maven のリポジトリやプラグインを使用することはできません。

作業ディレクトリ

試験の開始時には、デフォルトの JBDS ワークスペースに、試験で使用する 1 つ以上のプロジェクトディレクトリが含まれています。JBDS を開発に使用する必要はありませんが、デフォルトのワークスペースディレクトリと、すべてのタスク用に提供されるプロジェクトディレクトリは、使用する必要があります。つまり、提供されたディレクトリ構造ですべてのコードとリソースの開発を行い、ディレクトリ構造と整合性のとれたものにする必要があります。

コーディング標準

これは実践的な実技試験であるため、タスクを実行するにあたりコードを作成する必要があります。さまざまな企業が異なるコーディング標準を使用しており、現実の環境と同様に、ローカルのコーディング標準に従うことが求められます。試験のコーディング標準についての情報を以下に挙げますので、準備に役立ててください。この情報は試験中にも提供されます。試験の目的からすると、自分はプロジェクトを完了するために新しく採用された JPA/Hibernate 開発者であると考えてみるのがわかりやすいでしょう。残念ながら当初の開発者はプロジェクトを途中で放棄して連絡がとれない状態です。残されたコードを拾い出して、時間内にできるだけ完成させる必要があります。

コードは適切に文書化され、コード内には多くの TODO が記されており、作業の指示が示されています。ただし、Javadoc と TODO だけでは不十分です。タスクの説明を読み、TODO を実行する前に何が要求されているかを理解する必要があります。タスクのテキスト、UML/PDM 図、および Javadoc/TODO の 間に矛盾があると思った場合は、必ずタスクの説明に従うようにします。

以下は、作業時に注意すべき主なポイントです。

  • コード形式は重要ではありません。タブやスペースを使用するかどうか、および中かっこの位置は評価に影響しません。
  • クラスのマッピングには、XML ファイル、フィールドアノテーション、またはプロパティアノテーションのいずれを使用してもかまいません。既存のコードでは少数のフィールドレベルアノテーションを使用していますが、任意のマッピング形式に変更できます。
  • クラスの多くは通常とは異なる形で編成されています。フィールドや関連メソッドは一緒にグループ化されています。これは通常とは大きく異なり、推奨される方法ではありません。コード内でフィールドや関連メソッドを見つけるのに前後に検索する手間を省き、1 つのアイテムの作業がしやすいように、このような形をとっています。通常のコード構造が好ましければ、クラスメンバーをソートして構いませんヒント: JBDS では、青い TODO マーカーはエディタウィンドウの右側に示され、アウトラインビューのプロパティリストとともに、これらのクラスを迅速にナビゲートするのに利用できます。
  • 現実とは異なり、コメントや例外メッセージは重要ではありません。試験は機械で採点されるため、コメントやメッセージは完全に無視されます。
  • コードの品質とベストプラクティスが重要です。常にベストプラクティスを使用する必要があります。これが欠落するか不十分な場合は減点の対象になると考えてください。たとえば、Java のベストプラクティスではフィールドメンバーを公開しないため、オブジェクトプロパティに標準の JavaBeans の getter および setter を必ず使用します。
  • 試験のシナリオで使用されるプロジェクトは、他の部署の他のアプリケーションと併せて設計されています。タスクの説明やコードの TODO で明示的に指示されていないかぎり、既存のメソッドのシグネチャを変更してはいけません。このルールの唯一の例外は、シグネチャをより具体的にする (サブクラスや特定のジェネリックを使用する) ことが適切である場合です。その場合は変更が可能 (必要) です。たとえば、適切な場合は、コレクション {cke_protected}{C}%3C!%2D%2D%3F%2D%2D%3E をリストに置き換える必要があります。
  • フィールド、プロパティ、およびメソッドは必要に応じて追加できます。
  • プロジェクトでは永続エンティティに重点が置かれており、コントローラー/サービスレイヤへの入力はないため、永続エンティティのコードを慎重に作成することが求められます。つまり、エンティティメソッドによってビジネスロジックがオブジェクトの一貫性を壊すことがないようにする必要があります。たとえば、Null 値を許容しないプロパティに Null 値が渡された場合、そのセッターは NullPointerException をスローします。
  • 特に指定がない限り、すべてのエンティティは永続性エンジンによって自動生成されるデータベース主キーを使用する必要があります。
  • 内部の問題によりメソッドが例外をスローする必要がある場合は、必ず RuntimeException を使用します。ビジネス固有の例外を作成してはいけません。たとえば、問題がメソッドの無効な引数である場合は、IllegalArgumentException を使用できます。問題がオブジェクトモデルや永続ストアの状態の不整合である場合は、IllegalStateException を使用できます。当然ながら、適切な場合には常に NullPointerException を使用できます。特に明記されていないかぎり、オブジェクトグラフの関連エンティティに変更を自動的に伝播する際に、推移的な JPA 永続性機能を使用しないでください。これまでにも、多くのビジネスレベル開発者がこの機能で混乱しています。この機能を不適切に使用すると、パフォーマンスや信頼性に関する重大な問題を引き起こすおそれがあります。最後に注意すべき点として、成果物がコンパイルできない場合や、正しく実行できない場合は、評価されません。特に、永続的な関連付けが壊れていると、すべての永続アクションが動作しない可能性があります。難解な関連付けは他の関連付けを妨害しないようにコメントアウトしておくことをお勧めします。テストプロジェクトには適切に選ばれた JUnit テストが含まれているため、タスクの完了後にテストスイート全体を実行することをお勧めします。ただし、含まれている JUnit テストは試験の対象ではないため、作成したコードがテストをパスしたとしても、それで試験の最高評価を獲得できるわけではありません。

試験結果とその通知

この試験の正式な結果は、Red Hat Certification Central からのみ送付されます。試験官やトレーニングパートナーが受験者に直接結果を通知することは認められておりません。通常、試験結果は米国の 3 営業日以内に通知されます。

試験結果はセクションの得点で通知され、個々の項目に関する成績については報告しません。またそういった問い合わせに対して回答することはありません。

コースの対象者と前提条件

Red Hat エキスパート試験  ーPersistenceーの対象者は次のとおりです。

  • 熟練の Java アプリケーション開発者およびアーキテクト
  • ビジネスコンポーネントおよびデータベース開発者

この試験を受験するための前提条件

  • JBoss Hibernate Technology (JB297) コースを受講済みか、JPA および Hibernate を使用した幅広い業務経験がある
  • Red Hat Enterprise Linux 環境での作業に精通している
  • Red Hat エキスパート試験  ーPersistenceー (EX297) の内容を確認している