为什么H2数据库在Springboot应用程序中使用Hibernate内核

为什么H2数据库在Springboot应用程序中使用Hibernate内核,spring,spring-boot,h2,Spring,Spring Boot,H2,我有一个简单的springboot应用程序,它在内存db中使用H2。我在POM中使用了以下依赖项 spring引导启动器数据jpa com.h2database.h2 当我启动应用程序时,它会使用Hibernate方言自动创建实体表。我的POM中没有提到关于Hibernate的内容。那么为什么会发生这种情况呢。为什么Spring使用Hibernate方言。我们有没有办法把这种方言改成其他方言。请帮忙 您使用“spring boot starter data jpa”和“starter”概念意味着

我有一个简单的springboot应用程序,它在内存db中使用H2。我在POM中使用了以下依赖项

  • spring引导启动器数据jpa
  • com.h2database.h2

  • 当我启动应用程序时,它会使用Hibernate方言自动创建实体表。我的POM中没有提到关于Hibernate的内容。那么为什么会发生这种情况呢。为什么Spring使用Hibernate方言。我们有没有办法把这种方言改成其他方言。请帮忙

    您使用“spring boot starter data jpa”和“starter”概念意味着它具备一切功能。如果您愿意,这个依赖项还包括hibernate内核。

    您使用“spring boot starter data jpa”和“starter”概念意味着它拥有一切可以工作的东西。如果您愿意的话,这个依赖项还包括hibernate核心。

    SpringBoot生态系统中的Starter POM带来了一包依赖项,这些依赖项已经过测试,并被证明可以协同工作。它还为您节省了管理正确版本的工作

    您正在使用——这是JPA的入门pom——这里的自以为是的选择是使用Hibernate作为JPA提供者

    如果查看pom文件的源,您将看到以下定义:

            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.spec.javax.transaction</groupId>
                        <artifactId>jboss-transaction-api_1.2_spec</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
    
    org.hibernate
    冬眠核心
    org.jboss.spec.javax.transaction
    jboss-transaction-api_1.2_规范
    

    这就是将hibernate引入项目的原因,尽管您尚未在pom中明确声明它。由于您的spring boot starter数据jpa starter pom,hibernate作为隐式依赖项下载。

    SpringBoot生态系统中的starter pom带来了一包依赖项,这些依赖项已经过测试,并被证明可以协同工作。它还为您节省了管理正确版本的工作

    您正在使用——这是JPA的入门pom——这里的自以为是的选择是使用Hibernate作为JPA提供者

    如果查看pom文件的源,您将看到以下定义:

            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.spec.javax.transaction</groupId>
                        <artifactId>jboss-transaction-api_1.2_spec</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
    
    org.hibernate
    冬眠核心
    org.jboss.spec.javax.transaction
    jboss-transaction-api_1.2_规范
    
    这就是将hibernate引入项目的原因,尽管您尚未在pom中明确声明它。由于您的spring启动程序数据jpa starter pom,hibernate作为隐式依赖项下载