java与jpa一样吗,关于java:Spring Data-JPA与JPA:有什么区别?

我对Spring数据JPA和JPA之间的区别有点困惑。我知道JPA是使用流行的ORM技术将Java对象持久化到关系数据库的规范,换句话说,JPA提供接口和其他ORM技术,实现那些被称为JPA提供者(例如Hibernate)的接口。

现在什么是Spring数据JPA。SpringDataJPA是在JPA上添加了更多的功能(接口),还是只指定了它,还是它也是JPA提供程序?

我看到SpringDataJPA在存储库中工作(DAO层:如果我没有错的话)。所以我的意思是,使用"spring data jpa+hibernate"或者只使用"hibernate"指令有什么不同?

I saw Spring, JPA works around repositories (DAO layer: if I am not wrong). So I mean how it is different using 'Spring JPA + Hibernate' or only using 'Hibernate' directly?

如您所说,JPA是一个规范,而Hibernate是该规范的特定实现(这些实现通常被称为提供者)。通过使用Hibernate,您可以将自己绑定到该提供程序,限制您在需要时切换到其他选项的自由(例如,您希望使用EclipseLink或ObjectDB,因为Hibernate有一个阻止您的开发过程的错误)。

引用Spring数据JPA的文档:

Implementing a data access layer of an application has been cumbersome for quite a while. Too much boilerplate code had to be written. Domain classes were anemic and haven't been designed in a real object oriented or domain driven manner.

Using both of these technologies makes developers life a lot easier regarding rich domain model's persistence. Nevertheless the amount of boilerplate code to implement repositories, especially is still quite high. So the goal of the repository abstraction of Spring Data is to reduce the effort to implement data access layers for various persistence stores significantly.

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

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

Now what exactly is Spring, JPA. Is Spring, JPA has added some more functionality (Interfaces) over JPA and still it is specified only or it is also a JPA provider?

SpringDataJPA提供了一个定义,通过引用JPA规范,使用您定义的提供程序来实现引擎盖下支持的存储库。

我可以将存储库称为Spring管理的实体集合吗?我不知道为什么,但是使用存储库的SpringJPA支持看起来非常类似于EJB的EntityManager——这是正确的想法还是它们的用途完全不同?事先谢谢。Mustafa。

@穆斯塔法大多数解决方案都有共同的理由。困难的是,目标可能是相同的,由于涉及的接口,实现是不同的。

The Java Persistence API, sometimes referred to as JPA, is a Java framework managing relational data in applications using the Java Platform, Standard Edition (JavaSE) and Java Platform, Enterprise Edition(JavaEE).

< /块引用>

在这方面的持续性包括三个方面:

在javax.persistence包中定义的API本身。

Java持久性查询语言(JPQL)。

对象关系元数据。

47087e363676d33c1f7dbef663d2b7d4.png

Spring Data JPA is part of the umbrella Spring Data project that makes it easier to implement JPA based repositories.

< /块引用>

特征:

对基于Spring和JPA构建存储库的复杂支持

支持querydsl谓词,因此键入安全的jpa查询

域类的透明审核

分页支持,动态查询执行,能够集成自定义数据访问代码

启动时验证@Query注释查询

支持基于XML的实体映射

通过引入@EnableJpaRepositories来配置基于javaconfig的存储库

a3692b7ccd1d44dd6f2eaa0aac88e20a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值