JPA(Jakarta Persistence API)是一套「对象持久化」的规范,Hibernate 是它最主流的实现。它走的是全自动路线:你用实体(Entity)描述领域模型,框架自动生成 SQL、管理对象状态、追踪变更。写 CRUD 时几乎不碰 SQL,代价是对 SQL 的控制力变弱,理解持久化上下文(Persistence Context)与懒加载,是从「会用」到「用好」的分水岭。
1. 规范与实现
理清三者关系是关键:
| 名称 | 角色 |
|---|---|
| JPA | 一套接口与注解规范(EntityManager、@Entity、@Id……) |
| Hibernate | JPA 的实现,也是 JPA 之上的扩展(Session、HQL) |
| Spring Data JPA | 在 JPA 之上再封装一层 Repository,方法名即查询 |