【发布时间】:2019-07-20 21:01:54
【问题描述】:
Spring Data JPA 不是 JPA 实现,它是对数据库数据访问的抽象。 在与 JPA 的实现(比如 Hibernate)进行比较的领域中,我无法理解这个表达。使用 Spring Data JPA 时,要使用 CRUD 操作,您必须从 CrudRepository 接口扩展。但是没有 Hibernate,Spring Data JPA 不能独立工作,因为它不能将 java 对象转换为实体。但! Hibernate 还可以执行 CRUD 操作。所以问题是: 1。如果我们仍然需要使用 HIBERNATE,为什么开发人员使用 Spring Data JPA(精确的 CRUD 操作)? 2. CrudRepository 接口只是一个接口,它是从“Repository”接口扩展而来的。我们在 CRUD 类中对其进行扩展以实现 CRUD 操作。我不明白它是如何工作的。我们的类如何能够简单地通过扩展接口来执行 CRUD 操作。没有实现的方法。 我现在该如何回答这些问题:
- 是为了简化代码。由于通过 Hibernate 使用 CRUD 操作需要更多代码。
- 目前,脑海中只有一些想法,即以某种(“神奇”)方式,CrudRepository 接口使用标准 Hibernate 工具来使用 CRUD 操作。
【问题讨论】:
-
Spring Data JPA 不是 JPA 的实现,实际上 Hibernate 是它的实现。 Spring Data JPA 有点像 java JPA 的包装器
标签: java hibernate spring-data-jpa