Spring boot Data JPA是否在内部使用hibernate来实现?

Sac*_*tap 7 spring hibernate jpa spring-data-jpa

我正在努力建立一个现有项目,我在 pom.xml 中发现了以下依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但是hibernate没有任何依赖,那么如何检查项目是否使用hibernate。

我还发现 JpaConfiguration 类包含以下代码。

@Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
        LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
        entityManagerFactoryBean.setDataSource(dataSource);

        String entities = ClassUtils.getPackageName(ArkonnApplication.class);
        String converters = ClassUtils.getPackageName(Jsr310JpaConverters.class);
        entityManagerFactoryBean.setPackagesToScan(new String[]{entities, converters});

        entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());

        Properties jpaProperties = new Properties();
        jpaProperties.put("hibernate.dialect", dialect);
        jpaProperties.put("hibernate.hbm2ddl.auto", hbm2ddlAuto);
        jpaProperties.put("hibernate.show_sql", showSql);
        jpaProperties.put("hibernate.format_sql", formatSql);
        jpaProperties.put("hibernate.use_sql_comments", useSqlComments);
        entityManagerFactoryBean.setJpaProperties(jpaProperties);

        return entityManagerFactoryBean;
    }
Run Code Online (Sandbox Code Playgroud)

如果这个项目使用休眠那么为什么没有任何依赖或配置它。

1) Spirng boot Data JPA 是否带有默认的 Hibernate 配置?

2)如果是,Spring Boot Data JPA如何在Hibernate内部工作。(任何参考链接)

小智 7

JPA是一个接口,Hibernate是实现。默认情况下,Spring 使用 Hibernate 作为默认的 JPA 供应商。您可以在 pom.xml 下的依赖关系层次结构中看到 hibernate 相关依赖关系,这将解决项目的所有依赖关系。