Hibernate ORM:Java 持久层的老牌工具
Hibernate ORM:Java 持久层的老牌工具
hibernate-orm 在 GitHub 上已经拿到 6,449 Star 了。
Hibernate ORM 是 Java 生态里一套对象关系映射方案,也是 Jakarta Persistence、Jakarta Query、Jakarta Data 这三项规范的参考实现。它把关系数据库里的数据以自然且类型安全的形式暴露给 Java 程序,让开发者可以用面向对象的方式操作数据,不必手写一堆 JDBC 样板代码。

1、 它能干什么
核心能力就一句话:把 Java 对象和数据库表关联起来,让你写代码的时候只管对象,运行时由 Hibernate 负责生成 SQL、执行、回填结果。
具体它能帮你做几件事。一是处理复杂查询和结果集映射,二是把内存里的修改同步回数据库,三是尊重事务的 ACID 属性,四是自动处理时间数据和审计日志,五是多租户和行级安全也能管,六是等你写完基础持久化逻辑之后,再做性能调优。
对 Java 程序来说,这套东西是想用上关系模型和 SQL 表达能力、又不肯牺牲性能和代码复用的路子。
2、 怎么把它加进项目
文档地址在 hibernate.org/orm/documentation。新手先把 Hibernate ORM 依赖加进 Java 项目,再配一个数据库连接,就能跑了。
构建它需要本机有 JDK 25,产物编译成 Java 17 字节码。构建工具用 Gradle,仓库自带 Gradle Wrapper,不熟悉的话项目的 Gradle Primer 章节里讲了一遍上手要点。
3、 测试和数据库
测试默认跑在嵌入式 H2 上,一行命令搞定:
./gradlew test
要测其他数据库,先把数据库用 podman 或 docker 起起来,再带上对应 profile 跑测试:
./db.sh postgresql
./gradlew test -Pdb=postgresql

构建脚本在 local.databases.gradle 里定义了一堆数据库测试 profile,通过 db 这个属性切换。属性可以走 JVM 系统参数 -Ddb=… 传,也可以走 Gradle 项目参数 -Pdb=… 传。
支持的库相当全:H2、HSQLDB、Apache Derby 这类嵌入式的不用起容器;MySQL、MariaDB、PostgreSQL、Oracle、DB2、SQL Server、Sybase、SAP HANA、CockroachDB、TiDB、Informix、Spanner PostgreSQL、CUBRID 都有对应 profile。db.sh 用 --keep-orphans 或 -k 可以同时挂多个库,方便并行跑。
4、 常用构建任务
build 会打 jar 并跑测试,compile 做全部编译,jar 生成归档,test 跑测试,publishToMavenLocal 或简写 pTML 把 jar 装到本地 Maven 缓存 ~/.m2/repository 里,clean 清 build 目录。
跨模块跑任务直接在根目录执行就行,Gradle 会进每个子项目挨个执行。要单独跑某模块的任务,cd 进去或者用模块名前缀,比如 ./gradlew hibernate-core:test。
5、 谁在用
写 Java 后端、需要操作关系数据库的人,多数都绕不开这一层。它适合那些不想手写 JDBC、又想保留 SQL 表达能力的项目。要做多租户、行级安全、审计日志、复杂数据类型映射,自己实现一遍成本不低,Hibernate 替你做了。
CI 细节在仓库的 MAINTAINERS.md 里,贡献者去 CONTRIBUTING.md 走流程。
CI 细节在仓库的 MAINTAINERS.md 里,贡献者去 CONTRIBUTING.md 走流程。
更多推荐




所有评论(0)