Схема H2 все еще генерируется, когда spring.jpa.generate-ddl=false

Я использую Spring Boot 2.1.3 с базой данных H2 в памяти для тестирования. Когда я запускаю свои тесты, схема генерируется, даже если я указываю следующее свойство.

spring.jpa.generate-ddl=false

Кажется, что поскольку Spring Boot по умолчанию использует следующее свойство при использовании H2

spring.jpa.hibernate.ddl-auto=create-drop

Что это имеет приоритет над spring.jpa.generate-ddl=false

Это ошибка?

Нет, потому что это разные свойства. Установите для свойства spring.jpa.hibernate.ddl-auto значение none, тогда оно должно иметь приоритет.

M. Deinum 08.04.2019 20:32

Из любопытства, почему вы нет хотите, чтобы схема была сгенерирована для базы данных в памяти?

crizzis 08.04.2019 22:22

@crizzis Ну, у меня были ошибки с автоматической генерацией, поэтому мне нужно было отключить ее, пока я разбирался и работал над другими вещами.

secondbreakfast 09.04.2019 16:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
655
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это поведение описано в документации Особенности весенней загрузки в главе 11.3.3. Создание и удаление баз данных JPA:

By default, the DDL execution (or validation) is deferred until the ApplicationContext has started. There is also a spring.jpa.generate-ddl flag, but it is not used if Hibernate auto-configuration is active, because the ddl-auto settings are more fine-grained.

Поскольку свойство spring.jpa.hibernate.ddl-auto установлено по умолчанию, если используется Hibernate, флаг spring.jpa.generate-ddl игнорируется, если используется Hibernate (по крайней мере, с базой данных H2 в памяти).

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