gpt4 book ai didi

spring - Spring Data JPA 是 JPA 实现吗?

转载 作者:IT老高 更新时间:2023-10-28 13:51:19 25 4
gpt4 key购买 nike

我正在尝试“真正”理解 Spring Framework。我对 Spring Core (DI) 和 Spring MVC 有一定的了解。

对于数据部分,我现在专注于 Spring Data JPA。据我了解,JPA 是一种标准规范,有多种实现方式,其中最著名的是 Hibernate。

现在,当我开始使用 Spring Data JPA 时,我的印象是 Spring Data JPA 是 JPA 规范的独立实现。原来我错了。

如果我理解正确的话,Spring Data JPA 是 Spring 提供的一个抽象层,它内部使用了其他 JPA 提供者(例如 Hibernate),所以通常是这样的:

Application ---> Spring Data JPA --> Hiberate --> JDBC ----> DB

我的理解正确吗?如果是这样,这不是 Spring Data JPA 误导吗?它本身不是一个 JPA 提供者,它只是一个抽象层,它工作在其他 JPA 提供者之上。

我不确定我是真的了解 Spring 框架还是完全是一个复杂的框架?

谁能帮我理解一下?

最佳答案

我不认为它命名错误(免责声明:我是项目负责人)。所有 Spring Data 项目都在其名称中列出了它们基于的商店或 API。 Spring Data JPA 基本上是 Spring Data for JPA,就像 Spring Data MongoDB 是 Spring Data for MongoDB,就像 Spring Batch 是 Spring for batch应用程序,Spring Integration 是 Spring 集成项目。

请更正 JPA 的依赖关系图:

Application -> Spring Data JPA -> JPA <- Hibernate -> JDBC -> DataSource

-> — uses
<- — implements

MongoDB 也是如此:

Application -> Spring Data MongoDB -> MongoDB Java driver -> MongoDB

等等。我仍然对您在哪里得到 Spring Data JPA 是 JPA 的实现而不是 project page 的印象感兴趣。也不是 reference documentation在任何地方声明。事实上,尤其是 project page对项目提供的功能非常明确。此外,学习 description of the umbrella project 可能会有所帮助。 ,它试图为其中包含的所有模块设置一些基本上下文。

关于spring - Spring Data JPA 是 JPA 实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36920843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com