Почему база данных H2 использует Hibernate Core в приложении Springboot - PullRequest
0 голосов
/ 22 февраля 2019

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

  1. spring-boot-starter-data-jpa
  2. com.h2database.h2

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

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

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

Вы используете spring-boot-starter-data-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>

Это то, что приносит гибернацию в ваш проект., хотя вы явно не заявили об этом в вашем пом.Гибернация загружается как неявная зависимость из-за вашей стартовой помпы spring-boot-starter-data-jpa.

0 голосов
/ 22 февраля 2019

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

...