Hibernate情報
Hibernate とは
Hibernate(ハイバネート)はJavaの「クラス/オブジェクト」とリレーショナルデータベースの「テーブル/レコード」を自動で相互変換する技術であるO/Rマッピング(Object-Relational Mapping)」を実現するオープンソースソフトウェアです。
Javaで開発されたプログラムからデータベースの読み書きを実行する際、多くのプログラマがストレスにしてきた「繰り返し同じコード書く苦痛」を肩代わりするのがHibernateの役割です。コード全体の記述量を削減することは作業工数を圧縮するだけでなく、品質の均質化や人為的ミスの防止にも繋がります。
Hibernateは通常のJavaオブジェクトをベースにしたライブラリであり、その設計思想はシンプルで直感的な開発が可能な一方、内部アーキテクチャは高度で大規模なアプリケーションにも対応できます。
導入には一定の学習コストがかかりますがJPAの標準実装として広く利用されており、多様なデータベースに対応し豊富な機能と安定性が評価されていることからO/Rマッピングライブラリの定番となっています。
Hibernateは2001年にGavin King氏とCirrus Technologiesのメンバーによって、EJB 2.0スタイルのエンティティBeanの代替として開発されました。当初の目標は複雑さを解消しつつ不足している機能を補完することでEJB2よりも優れた永続性機能を提供することでした。
2003年にHibernateの主要な開発者はJBoss社に雇用され、その後も継続的に開発が行われてきました。2020年にはHibernate 6.0をリリースし、Jakarta EE 9対応と大幅な内部アーキテクチャ刷新が行われました。
現在はRed Hat社がメンテナンスを行っており、Java EE(現Jakarta EE)の標準O/Rマッピングフレームワークとして広く採用されています。
主な特徴
Hibernateは次のような特徴があります。
- オブジェクトとデータベースを効率的にマッピングできる
- 動作が軽い
- コーディングの記述量を削減できる
- Javaベースの言語なので新規習得の負担が少ない
- マッピングライブラリの中では特にユーザ数が多い
- パラメータ化されたクエリのサポートによりSQLインジェクションのリスクを軽減できる
こんなお客さまにHibernateの導入をオススメ
次のようなお客様にHibernateの導入をオススメします。
- プログラミングの工数を減らしたい
- よりシンプルで美しいコードを書きたい
- 人為的ミスを減らしたい
- 導入実績の多さを重要視している
- プログラマのレベルに依存しないようにしたい(品質の均質化)
- 用途に合わせて最適なモジュールを使い分けたい
- セキュリティ対策(SQLインジェクション防止など)を強化したい
Hibernateのプロジェクト
Hibernateでは次のプロジェクトが提供されています。
プロジェクト名 |
概要 |
---|---|
Hibernate ORM |
Java環境でO/Rマッピングを実現するコアモジュール(JPA/Jakarta Persistence完全準拠)。Hibernate4.1以前の名称はHibernate Core。 |
Hibernate Search |
Hibernateモデルに対するApache LuceneまたはElasticsearchを使用した全文検索機能 |
Hibernate Validator |
JSR 303/380に準拠したバリデーション機能(Bean Validation実装) |
Hibernate Reactive |
Hibernate ORMのリアクティブ版(非同期・リアクティブDBアクセス対応) |
Hibernate Tools |
Hibernateを使用するためのコマンドラインツールとIDEプラグイン |
Hibernateのライセンス
HibernateはほとんどがApache Software License 2.0のもとで提供されていますが、一部のHibernateプロジェクトについてはLGPL(※1) 2.1のもとで提供されています。
Apache Software License 2.0
- Hibernate ORM Version 7.0.0 Beta5以降
- Hibernate Search Version 7.2.0 Alpha2以降
- Hibernate Validator
- Hibernate Reactive
LGPL(※1) 2.1
- 一部、以前のVersionのHibernateプロジェクト
- Hibernate Tools
- GNU Lesser General Public Licenseの略
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるようにオープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
MyBatis
マイバティス。iBATISの後継プロジェクトとして開発され、Javaならびに.NET Frameworkプラットフォームが対象のデータマッパーフレームワークです。