Hibernateとは、Hibernate Development Teamによって開発されているJava言語向けのO/Rマッピング用のライブラリの名称である。HibernateのライセンスはLGPLであり、スタンドアローンのJavaアプリケーションで使える他、Java ServletやEJBセッションビーンを使った Java EE アプリケーションなどでも利用可能である。また、「HQL」という独自のSQLライクな言語も提供している。
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/17 03:30 UTC 版)
|
|
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 (2021年6月)
|
| 開発元 | レッドハット |
|---|---|
| 最新版 |
6.6.11.Final[1] / 2025年3月16日
|
| リポジトリ | |
| 対応OS | クロスプラットフォーム |
| プラットフォーム | Javaプラットフォーム |
| 種別 | ORM |
| ライセンス | LGPL |
| 公式サイト | www.hibernate.org |
Hibernate は、Java のためのオブジェクト関係マッピング (ORM) ライブラリであり、オブジェクト指向のドメインモデルを関係データベースにマッピングするためのフレームワークを提供する。Hibernate は、永続性に関わるデータベースアクセスを直接高レベルなオブジェクト操作機能に置換することでオブジェクト指向と関係モデルの不整合を解決する。
Hibernate はオープンソースの自由ソフトウェアであり、GNU Lesser General Public License で提供されている。
第一の機能は、Javaクラスからデータベースの表(およびJavaデータ型からSQLデータ型)へのマッピングである。また、データのクエリと検索機能も提供する。SQL呼び出しを自動生成することで、開発者がSQL呼び出しの結果をいちいちオブジェクトに変換する手間から解放し、性能への影響を最小にしつつ、あらゆるSQLデータベースへの移植性を達成している。
Hibernateは Plain Old Java Object (POJO) のための透過的永続性を提供する。永続性クラスに要求されることは、引数のないコンストラクタが存在することであり、コンストラクタの可視性がpublicでなくともよい(一部アプリケーションでは、equals()とhashCode()メソッドにも注意が必要[1])。
Hibernateには「ダーティチェッキング」機能がある。この機能は、永続的オブジェクトの変更されたフィールドについてのみSQLによる更新を行うもので、不必要なデータベース更新を削減する。
Hibernateは「HQL」というSQLライクなクエリ言語を提供している。オブジェクト指向的な代替手段としてクライテリアクエリも提供されている。
HibernateはスタンドアローンのJavaアプリケーションにも使えるし、Java ServletやEJBセッションビーンを使ったJakarta EEアプリケーションにも使える。
HibernateはGavin Kingをリーダーとして世界中のJavaソフトウェア開発者がチームを結成して開発した。その後、JBoss社(現在はレッドハットの一部)がHibernateの主要開発者を雇い入れ、サポートを行うようになった。
バージョン3.xでは、Interceptor/Callbackアーキテクチャ、ユーザ定義フィルタ、JDK 5.0アノテーション(Javaのメタデータ機能)などの新機能が新たに追加された。このバージョンはEJB 3.0仕様とも非常に近く(ただし、EJB 3.0仕様が完成しJava Community Processによってリリースされる前にリリースされた)、JBossのEJB 3.0実装の基盤となった。
Hibernateはモジュール化され、それぞれ独立したチームが開発している。
Session サポート、トランザクション管理、オブジェクト・キャッシング、HQL)。
JavaオブジェクトとSQLの変換をするには、JavaクラスとSQLテーブルの間の「マッピングデータ」がなければならない。Hibernateはこのためのいくつかの手段を提供する。
Configurationインスタンスに追加する)。アノテーション機能は別モジュール化されている。
SessionFactoryのインスタンスを生成する前に、マッピングの詳細を操作するAPI(Configurationインスタンスを使用)も提供している。
不要なSQLによる更新を防ぐため、Hibernateはダーティチェッキングという機能を提供している。この機能は、永続的オブジェクトの変更されたフィールドやコレクションのみを更新できるようにするものである。コレクションに含まれない部分の更新が必要かどうかを確認するため、HibernateはそれらのフィールドをObject.equals()メソッドで比較する。一方、コレクションフィールド(java.util.Listやjava.util.Setなど)は同一性(参照)比較を行う。
Hibernate APIは、パッケージ org.hibernateで提供されている。
|
出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。
|
固有名詞の分類