Spring MVC 存储库和 Hibernate

Spring MVC Repository and Hibernate

根据 Spring 文档,我创建了一个具有以下依赖项的 Maven 项目:

<dependencies>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.3-1102-jdbc41</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

我想知道存储库数据抽象 "goes through" 是否休眠。

来自参考文档:

28.3 JPA and ‘Spring Data’

The Java Persistence API is a standard technology that allows you to ‘map’ objects to relational databases. The spring-boot-starter-data-jpa POM provides a quick way to get started. It provides the following key dependencies:

Hibernate — One of the most popular JPA implementations.

Spring Data JPA — Makes it easy to easily implement JPA-based repositories.

Spring ORMs — Core ORM support from the Spring Framework.

所以答案是"Yes"。

顺便说一句,Spring 将通过声明 spring-boot-starter-data-jpa 依赖关系来创建并 bootstrap 自动创建一个 EntityManagerFactory 和 DataSource bean。

如果您不确定您的项目有哪些依赖项,您可以使用 maven-dependency-plugin. Specifically, you can use dependency:tree to get a hierarchal tree view of all dependencies and their transitive dependencies (or dependency:list 获取一个简单的列表),例如

$ mvn dependency:tree

然后回答您的问题:是的,spring-boot-starter-data-jpa 确实依赖于 Hibernate:

[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.2.0.RELEASE:compile
[INFO] |  +- 
[INFO] |  +- org.hibernate:hibernate-entitymanager:jar:4.3.7.Final:compile
[INFO] |  |  +- 
[INFO] |  |  +- org.hibernate:hibernate-core:jar:4.3.7.Final:compile
[INFO] |  |  |  +- 
[INFO] |  |  +- 
[INFO] |  |  +- org.hibernate.common:hibernate-commons-annotations:jar:4.0.5.Final:compile
[INFO] |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] |  |  +-