栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JPA和Spring Data JPA有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JPA和Spring Data JPA有什么区别?

我看到了Spring,JPA在存储库(DAO层:如果我没记错的话)周围工作。所以我的意思是使用“ Spring JPA +
Hibernate”或仅直接使用“ Hibernate”有何不同?

如您所说, JPA 是一个 规范,Hibernate 是该规范的特定实现(这些实现通常称为 Providers
)。通过使用Hibernate,您将自己与该提供程序联系在一起,从而限制了您在需要时自由切换到另一个选项的自由(例如,您想使用Eclipselink或ObjectDB来代替,因为Hibernate有一个会中断您的开发过程的错误)。

引用 Spring Data JPA 的文档:

实现应用程序的数据访问层已经很长一段时间了。必须编写太多样板代码。域类是贫乏的,不是以真实的面向对象或域驱动的方式设计的。

结合使用这两种技术,就富域模型的持久性而言,使开发人员的工作变得更加轻松。尽管如此,实现存储库的样板代码数量仍然非常高。因此,Spring
Data存储库抽象的目标是显着减少为各种持久性存储实现数据访问层的工作量。

概括起来,它是在JPA之上添加了另一层抽象,这种抽象是一种定义基于标准的设计以在Spring上下文中支持 持久层
。这些定义的接口(Spring已知)提供框架使用JPA处理以​​提供结果的服务。您可以使用Spring可以扫描项目并找到它的方式定义存储库:

<repositories base-package="com.acme.repositories" />

因此,允许您在容器的上下文中或外部使用它。

现在,JPA正是Spring。Spring,JPA是在JPA之上添加了更多功能(接口),仍然仅被指定还是JPA提供者吗?

Spring Data JPA通过使用定义的提供程序来引用JPA规范,从而提供了实现内部支持的存储库的定义。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374183.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号