EJB 3.0 TrailBlazer: ハイキング 3: 永続性とデータベースアクセス
 

EJB 3.0 エンティティBeanは、リレーショナルデータベースのテーブルをモデル化し、アクセスするために使用されます。それは完全にPOJOベースの永続フレームワークなので、ほとんどのJava開発者にとって自然に扱えるはずです。

HibernateやTopLinkに慣れ親しんだ方なら、EJB 3.0はとても直感的であると感じることでしょう。なぜなら、その設計モデルはHibernateとTopLinkのO/Rマッピング(Object / Relational mapping)のアプローチに強く影響を受けているからです。Javaでの複雑なデータベースのプログラミングの経験がないとしても、EJB 3.0 エンティティBeanはとても学習しやすいことに気づくことでしょう。必要なことは簡単なPOJOによってアプリケーションのデータをモデル化することだけです。次に、簡単なアノテーションを指定することによって、コンテナはJavaオブジェクトをリレーショナルデータベースのテーブルへ変換する方法を理解します。EntityManager APIを使えば、リレーショナルデータの代わりにあたかもJavaオブジェクトを格納するかのようにリレーショナルデータベースを操作することができます。

このハイキングでは、トレイルを進みながらEJB 3.0 エンティティBeanのプログラミングモデルとEntityManager APIのキーとなる特徴を探索していきます。それでは、EJB 3.0においてO/Rマッピングがどのように動作するのかについて議論を始めましょう。

注意: EJB 3.0 エンティティBeanは、旧 EJB 2.1 エンティティBeanと比べるとまったく異なるもので、より簡単に使えるようになっています。


エンティティBeanのO/Rマッピング

このトレイルはJavaオブジェクトを内部で関連付けられたリレーショナルデータベースのテーブルへ変換するためにEntity Bean(POJO)を使う方法を示します。オブジェクト間の関係を指定する方法も扱います。EJB 3.0コンテナは正しいスキーマとSQL文を生成します。

EntityManagerの基本

EJB 3.0エンティティBeanはPOJOなので、インスタンスの生成はJavaのnewキーワードを使うだけで可能です。このトレイルは 、投資計算を実行するためにEJB 3.0 EntityManagerインタフェースを使ってエンティティBeanインスタンスをデータベースに永続化し、次にそれらを取得する方法を示します。

EJBクエリーによるデータベース検索

このトレイルはEJB 3.0のデータクエリー言語について議論します。EntityManagerはデータベース検索やエンティティBeanオブジェクトのコレクションから一致するデータを取得するためにSQLライクなクエリー言語をサポートします。

データベースの更新と同期

このトレイルはJavaプログラム内でエンティティBeanインスタンスを変更することで現存するデータ行を更新する方法とそれらの変更をデータベースに同期する方法を議論します。

エンティティBeanのライフサイクル

このトレイルはエンティティBeanのライフサイクルと、コールバックメソッドを使ってエンティティBeanの振る舞いを自動化する方法を議論します。

永続コンテキストの設定

このトレイルはデフォルト組み込みHSQLDB以外のデータベースでエンティティBeanを使う方法を議論します。複数の永続コンテキストの概念や永続性のアーカイブのパッケージングも議論します。

©2002-2005 JBoss Inc. All rights reserved. JBoss is a registered trademark and servicemark of JBoss, Inc.
Privacy Policy