JPA(Java persistence API), Spring data JPA 和Hibernate的区别

1.简单来说,JPA(Java persistence API)是一套规范,提供了一些编程的API接口。

2.Hibernate是一种ORM框架,是服务厂商对JPA的实现之一,还有很多种其他实现,它们的底层也是基于JPA,可以说是对JPA的继承。比如说对一些注解的使用,如果JPA中已经存在就可以直接使用,不存在的可通过hibernate进行扩充,个人理解,Hibernate与JPA之间相当于父类与子类的关系,前者继承了后者并在其基础上做一定的实现。

3.Spring Data JPA是Spring Data的子模块,是在JPA规范的基础上提供的对repository层的实现,定义了一些通用的怎删改查接口,简化了数据访问层重复代码的编写,把一些通用的方法抽象出来,而ORM部分用哪一套实现可以由自己决定,默认的是使用Hibernate JPA的实现。

特别注意:说JPA的时候得搞清楚说的到底是什么,是Java persistence API还是Spring Data JPA,这两者存在本质上的区别。

JPA(Java persistence API), Spring data JPA 和Hibernate的区别_第1张图片

你可能感兴趣的:(JPA(Java persistence API), Spring data JPA 和Hibernate的区别)