Почему база данных H2 использует Hibernate Core в приложении Springboot

У меня есть простое приложение Springboot, которое использует H2 в базе данных памяти. Я использовал следующую зависимость в своем POM

  1. весна-загрузка-стартер-данные-jpa
  2. com.h2database.h2

Когда я запускаю приложение, оно автоматически создает таблицы Entity, используя Hibernate Dialect. Я нигде не упоминал о Hibernate в моем POM. Так почему же это происходит. Почему Spring использует Hibernate Dialect. Есть ли у нас возможность изменить этот диалект на какой-то другой диалект? пожалуйста помоги.

0
0
159
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ну, вы используете понятие «spring-boot-starter-data-jpa» и «starter», что означает, что у него есть все для работы. Если вы посмотрите на https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa/2.1.3.RELEASE , эта зависимость также включает hibernate-core.

Ответ принят как подходящий

Стартовые помпы в экосистеме SpringBoot приносят набор зависимостей, которые были протестированы и доказали свою совместную работу. Это также избавляет вас от необходимости управлять правильными версиями зависимостей.

Вы используете весна-загрузка-стартер-данные-jpa, который является стартовой помпой для JPA. Здесь самоуверенным выбором является использование Hiberante в качестве провайдера 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>

Это то, что приносит спящий режим в ваш проект, хотя вы явно не объявили его в своем pom. Спящий режим загружается как неявная зависимость из-за вашего стартового файла spring-boot-starter-data-jpa.

Другие вопросы по теме