Loading AI tools
ウィキペディアから
Hibernate は、Java のためのオブジェクト関係マッピング (ORM) ライブラリであり、オブジェクト指向のドメインモデルを関係データベースにマッピングするためのフレームワークを提供する。Hibernate は、永続性に関わるデータベースアクセスを直接高レベルなオブジェクト操作機能に置換することでオブジェクト指向と関係モデルの不整合を解決する。
![]() |
開発元 | レッドハット |
---|---|
最新版 |
5.4.2[1]
/ 2019年3月22日 |
リポジトリ | |
対応OS | クロスプラットフォーム |
プラットフォーム | Javaプラットフォーム |
種別 | ORM |
ライセンス | LGPL |
公式サイト | www.hibernate.org |
Hibernate はオープンソースのフリーソフトウェアであり、GNU Lesser General Public License で提供されている。
第一の機能は、Javaクラスからデータベースの表(およびJavaデータ型からSQLデータ型)へのマッピングである。また、データのクエリと検索機能も提供する。SQL呼び出しを自動生成することで、開発者がSQL呼び出しの結果をいちいちオブジェクトに変換する手間から解放し、性能への影響を最小にしつつ、あらゆるSQLデータベースへの移植性を達成している。
Hibernateは Plain Old Java Object (POJO) のための透過的永続性を提供する。永続性クラスに要求されることは、引数のないコンストラクタが存在することであり、コンストラクタの可視性がpublicでなくともよい(一部アプリケーションでは、equals()とhashCode()メソッドにも注意が必要)。
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で提供されている。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.