はじめに

オブジェクト指向のソフトウェアやリレーショナルデータベースの使用は、今日のエンタープライズ環境では非常に煩雑で時間のかかる作業となります。Hibernate は Java 環境用のオブジェクト/リレーショナルマッピングツールです。オブジェクト/リレーショナルマッピング (ORM) とはデータ表現をオブジェクトモデルから SQL ベースのスキーマによるリレーショナルデータモデルにマッピングする技術のことを指します。
Hibernate は Java クラスからデータベーステーブルへのマッピング (および Java データタイプから SQL データタイプへのマッピング) を行うだけでなく、 データのクエリや検索機能も提供します。 SQL や JDBC での手作業によるデータ処理時間を短縮できるため、 開発に要する時間を大幅に削減することが可能になります。
Hibernate の目標は、一般的なデータ永続性に関する開発者のプログラム作業を95 % 軽減することです。 Hibernate データベース内でビジネスロジックを実現するストアドプロシージャのみを使用するデータ処理中心のアプリケーションに対しては最適ではないかもしれませんが、 Java ベースの中間層でのビジネスロジックやオブジェクト指向のドメインモデルを使用する場合に最も実用的です。 Hibernate は開発者がベンダー固有の SQL コードを除去したりカプセル化できるようにするため、 表形式からオブジェクトのグラフへ結果セットを変換する一般的な作業を行う際に便利です。
Hibernate 及びオブジェクト/リレーショナルマッピング、 あるいは Java が不慣れな方は、次の手順を行ってください。
  1. ステップバイステップのチュートリアル 1章チュートリアル をお読みください。 チュートリアルのソースコードはディストリビューションの doc/reference/tutorial/ ディレクトリにあります。
  2. Hibernate が使用できる環境について理解するため、2章アーキテクチャをお読みください。
  3. Hibernate ディストリビューション内の eg/ ディレクトリを確認してください。 簡単なスタンドアロンアプリケーションが含まれています。 ご使用の JDBC ドライバを lib/ ディレクトリにコピーしてから、 ご使用のデータベースに対して適切な値を指定するため etc/hibernate.properties を編集します。 コマンドプロンプトでディストリビューションディレクトリ内より ant eg (Ant を使用) と入力します。 Windows の場合は build eg と入力します。
  4. 本参考文書は主な情報源としてご利用ください。 アプリケーションデザインに関する詳細や、 ステップバイステップのチュートリアルが必要な場合は、 Java Persistence with Hibernate (http://www.manning.com/bauer2) の参照をお薦めします。 また、 http://caveatemptor.hibernate.org より Java Persistence with Hibernate のサンプルアプリケーションをダウンロードすることができます。
  5. よくある質問とその答え (FAQ) は Hibernate ウェブサイトでご覧ください。
  6. サードパーティのデモ、 サンプル、 チュートリアルなどは Hibernate のウェブサイト上にリンクされています。
  7. Hibernate ウェブサイト上の Community Area はデザインのパターンやさまざまな統合ソリューション (Tomcat、 JBoss AS、 Struts、 EJB など)を検索する上で興味深いリソースになります。
質問がある場合は、 Hibernate ウェブサイト上にリンクされたユーザーフォーラムをご利用ください。 また、 バグ報告や機能のリクエストに関して JIRA 問題追跡システムを提供しています。 Hibernate, の開発に興味がある方は、 開発者用メーリングリストにご参加ください。 本ドキュメントの翻訳に興味がある方は、 開発者用メーリングリストよりご連絡ください。
Hibernate に関する商業用開発サポート、 実稼働サポート、 トレーニングについては JBoss Inc よりご利用頂けます (http://www.hibernate.org/SupportTraining/ を参照)。 Hibernate はプロフェッショナルなオープンソースプロジェクトであり、 JBoss Enterprise Middleware System (JEMS) スイート製品の重要なコンポーネントになります。