首页 文章

Spring Data JPA是JPA实现吗?

提问于
浏览
18

我试图“真正”理解Spring Framework . 我对Spring Core(DI)和Spring MVC有了一些了解 .

对于数据部分,我现在专注于Spring Data JPA . 据我所知,JPA是一个标准规范,有多个实现,Hibernate是着名的 .

现在,当我启动Spring Data JPA时,我的印象是Spring Data JPA是JPA规范的 independent implementation . 原来我错了 .

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

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

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

我不确定我是否真的了解Spring框架,或者它是一个复杂的框架?

有人可以帮我理解吗?

1 回答

  • 30

    我不知道错误的名字(免责声明:我是项目负责人) . 所有Spring Data项目都会在其名称中列出它们所基于的商店或API . Spring Data JPA基本上是JPA的Spring Data,就像Spring Data MongoDB是MongoDB的Spring Data一样,就像Spring Batch是批处理应用程序的Spring一样,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,它试图为其中包含的所有模块设置一些基本上下文 .

相关问题