OSS探訪

Hibernate ORM — Java objectとrelational modelをJakarta Persistence/JPAで結ぶ

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
6,470
主要言語
Java
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/20

概要

Hibernate ORMは、Java object/entityとrelational databaseのtable・relationshipをmappingするpersistence frameworkです。Jakarta Persistence(JPA)の主要実装として、HQL/query API、transaction、dirty checking、lazy/eager fetching、multi-tenancy、audit logging(Envers)などを提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

entity mappingとdirty checkingでobject stateをdatabaseへ同期する

annotation/XML mappingを基にentityとtableを対応付け、transaction内で変更されたobject stateを検出して必要なSQLへ反映できます。

出典:[2][4]

JPA/HQLとdatabase dialectでrelational機能を抽象化する

Jakarta Persistence APIやHibernate Query Languageを使い、複数RDBMSのdialect差をframework側で吸収しつつcomplex queryを表現できます。

出典:[2][4]

Java applicationのdomain modelとRDBMS persistenceを統合したい場合に

Spring/Jakarta EE等のJava applicationで、entity lifecycle、transaction、query、schema mappingを共通persistence layerへ集約したい用途に向きます。

出典:[2]

N+1・lazy loading・session scope・生成SQLを明示的に管理する

ORM abstractionだけに頼るとquery数やjoin behaviorが見えにくくなります。fetch plan、batching、transaction境界、SQL logging/profilingを使い、database access costを継続確認してください。

出典:[4]

参考にした公式資料

  1. [1]hibernate/hibernate-orm repository(2026-09-20)
  2. [2]Hibernate ORM README(2026-09-20)
  3. [3]Hibernate ORM Apache-2.0 license(2026-09-20)
  4. [4]Hibernate ORM documentation(2026-09-20)
編集部からの補足

単純CRUDをSQLから隠すtoolではなく、entity stateとtransaction境界を管理するpersistence frameworkとして理解した方が適切です。便利なlazy loadingやdirty checkingはquery数やsession scopeを意識しないとN+1やunexpected SQLを生むため、生成SQLとfetch strategyを監視しながら使う必要があります。

3ステップで試す

  1. 1

    Hibernate ORM sourceを取得

    framework自体の構造とtestを確認するためsource repositoryを取得します。

    git clone https://github.com/hibernate/hibernate-orm.git && cd hibernate-orm
  2. 2

    H2 profileでcore testを実行

    外部databaseを用意せず、embedded H2でHibernate coreのtest suiteを実行します。

    ./gradlew hibernate-core:test -Pdb=h2
  3. 3

    application導入は公式configuration guideへ進む

    実applicationではhibernate-core dependencyとJDBC connectionを設定し、entity mapping・transaction・generated SQLを確認します。

    https://hibernate.org/orm/documentation
公式READMEで確認

成長

成長の推移 · 直近30日

6,470 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
247
Open PR
137
Issue登録
0
Issue解決
0
PR登録
609
PRマージ
513

Issues

0 / 0

6月23日9月20日
Issue登録Issue解決

Pull Requests

609 / 513

6月23日9月20日
PR登録PRマージ

メンテナンス状況

Issue初回応答中央値
データなし
Issue応答率
対象Issueなし

直近90日に外部から作成されたIssue(新しい順に最大100件)が対象です。OWNER・MEMBER・COLLABORATORによる最初のコメントを応答とし、全コメントを確認できないIssueは集計から除外します。中央値と応答率は週次更新です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • hibernate
  • java
  • orm
  • jpa
  • jdbc
  • database
  • envers
  • jakarta-persistence
  • jakartaee
  • object-relational-mapper
  • object-relational-mapping
  • persistence
Stars
6,470
Forks
3,816
Watchers
291
Open Issues
0
Contributors
362
主要言語
Java
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/20

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。