Spring Data JPA Vs Hibernate JPA Vs JPA

前言

从文章的标题,就可以清晰地了解到,本文是来辨析三个容易将新手弄糊涂的技术名词。如果,你一眼看过去就知道这三个名词的区别及关系,那么,这篇文章你可以不用继续读下去了;除非,你是想要看看我有什么解释的不对,来纠错的(来找茬,哈哈),也欢迎留言。

名词解释

  • JPA(Java Persistence API,Java持久化API),它是一个关于如何处理对象关系映射(object-relational mappings)的规范;即,定义了映射Java中的Object到关系数据库Table的标准流程。
  • Hibernate JPA,它实现了JPA规范,是JPA规范的厂商(想想JDBC规范和MySQL数据库厂商的关系,JPA和Hibernate也是这么一种关系)。

    除了Hibernate这个厂商,EclipseLink也是一个比较流行的JPA厂商。

  • Spring Data JPA,它是JPA规范的一个数据访问抽象;Spring Data旨在提供一种一致的数据访问模型,用于访问来自不同存储类型的数据。

JPA 背景

在引入EJB 3.0规范之前,许多企业级Java开发人员使用由持久化框架(例如Hibernate)或数据访问对象(DAO)提供的轻量级持久化对象,来代替实体bean(EJB的一种)。 这是因为在以前的EJB规范中,实体bean需要太多复杂的代码和繁重的资源占用,并且由于bean和DAO对象或持久化框架之间的源代码中的互连和依赖性,使得它们只能在Java EE应用程序服务器中使用。 因此,最初在第三方持久性框架中提供的许多功能都被合并到Java Persistence API中,并且从2006年开始,像Hibernate(版本3.2)和TopLink Essentials这样的项目已经实现Java Persistence API规范。

JPA 编年史

  • 2006年5月, JPA 1.0 规范作为 JCP JSR 220 的一部分最终被发布。
  • 2009年12月,JPA 2.0 规范发布(JSR 317,Java EE 6 平台,依赖于 JPA 2.0。)
  • 2013年4月, JPA 2.1 规范发布(JSR 338,Java EE 7 平台,依赖于 JPA 2.1。)
  • 2017年6月, JPA 2.2 规范发布(JSR 338)

参考资料

原文地址:https://www.cnblogs.com/VioletLove/p/9393648.html

时间: 2024-08-25 19:02:50

Spring Data JPA Vs Hibernate JPA Vs JPA的相关文章

Spring ORM+Hibernate?Out!换 Spring Data JPA 吧!

转载请注明出处:http://blog.csdn.net/anxpp/article/details/51415698,谢谢! 在一切开始之前,先举个简单的例子,以提高大家的兴致! 如果一张表user有三个字段,id.name和age,要查找指定姓氏在某年龄以上的user,在传统的Spring+Hibernate中,dao层我们是这样写的: UserDao: public interface UserDao{ List<User> findByNameLikeAndAgeGreaterThan

Spring Data 系列(二) Spring+JPA入门

通过[Spring Data 系列(一) 入门]的介绍,通过对比的方式认识到Spring提供的JdbcTemplate的强大功能.通过使用JdbcTemplate,操作数据库,不需要手动处理Connection,Statement等底层SQL对象.可是,Spring对数据库的操作还远远没有结束.本章主要介绍Spring 对JPA的支持. 主要内容 简单介绍JPA Spring Hibernate JPA整合 1.JPA简介 Java Persistence API (JPA),为开发人员提供了一

Spring Boot2 系列教程(二十三)理解 Spring Data Jpa

有很多读者留言希望松哥能好好聊聊 Spring Data Jpa! 其实这个话题松哥以前零零散散的介绍过,在我的书里也有介绍过,但是在公众号中还没和大伙聊过,因此本文就和大家来仔细聊聊 Spring Data 和 Jpa! 本文大纲: 1. 故事的主角 1.1 Jpa 1.1.1 JPA 是什么 Java Persistence API:用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层 1.1.2 JPA 和 Hibernate 的关

Spring Data学习笔记-查询方法

Spring Data支持类似Hibernate的查询语句,也可以写原生SQL语句,下面记录典型的例子. /**  * 1. Repository 是一个空接口. 即是一个标记接口  * 2. 若我们定义的接口继承了 Repository, 则该接口会被 IOC 容器识别为一个 Repository Bean.  * 纳入到 IOC 容器中. 进而可以在该接口中定义满足一定规范的方法.   *   * 3. 实际上, 也可以通过 @RepositoryDefinition 注解来替代继承 Rep

java框架整合例子(spring、spring mvc、spring data jpa、hibernate)

这是自己参考springside开源项目整合的框架,主要整合了spring.spring mvc.spring data jpa.hibernate这几个框架,对于这几个框架其中感觉比较舒服的还是spring data jpa这个框架,这个框架在写dao类的时候,只需要写一个接口声明,spring data jpa会自动的实现其实现类,使用起来比较方便,至于详细的使用方法还请自己百度吧,因为我也不清楚.个人感觉还有一个比较不错的地方就是能够打印sql语句,都知道hibernate打印的sql语句

Hibernate中使用Spring Data JPA

1.pom.xml中引入相关依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </propertie

java(样品集成框架spring、spring mvc、spring data jpa、hibernate)

这是你自己的参考springside集成框架的开源项目.主要的整合spring.spring mvc.spring data jpa.hibernate几个框架,对于这些框架中仍然感觉更舒适spring data jpa该框架,该框架编写dao上课时间,只需要编写一个接口声明,spring data jpa会自己主动的实现事实上现类,使用起来比較方便,至于具体的用法还请自己百度吧,由于我也不清楚. 个人感觉另一个比較不错的地方就是可以打印sql语句,都知道hibernate打印的sql语句并不会

spring data jpa hibernate jpa 三者之间的关系

JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现,JBoss应用服务器底层就以Hibernate作为JPA的实现. 既然JPA作为一种规范——也就说JPA规范中提供的只是一些接口,显然接口不能直接拿来使用.虽然应用程序可以面向接口编程,但JPA底层一定需要某种JPA实现,否则JPA依然无法使用.从笔者的视角来看,Sun之所以提出J

hibernate search5.3.0全文检索集成到spring data jpa

hibernate search 我就不多说了,它是基于lucene的全文检索工具,记得上大学那时候接触了compass全文检索工具,后来也没怎么用,再后来这家伙不更新了,所以hibernate就推出了自己的基于lucene的全文检索工具就是这家伙hibernate Search. 不用说天然的优势就是可以无缝的和hibernate集成甚至不需要什么配置,一直在更新中,最近想在自己的博客里面加入搜索功能,本想用比较热乎的solr,找了半天资料还是放弃了,用在我的博客里面有点大题小做了,所以自然就

简述 JPA 与 Spring Data JPA 与 Hibernate

1.JPA是什么?以及相关概述 JPA的是 Java Persistence API 的简写,是Sun官方提出的一种ORM规范! Sun提出此规范有2个原因: 1.简化现有Java EE和Java SE应用开发工作. 2.Sun希望整合ORM技术,实现天下归一. 重点在于,JPA是一套规范,而不是具体的ORM框架. 故Hibernate.TopLink 等ORM框架 都是JPA的实现,其中Hibernate已获得Sun的兼容认证. JPA的标准的定制是hibernate作者参与定制的,所以JPA