У меня были проблемы с @DataJpaTest
, потому что таблицы не могли быть созданы из-за отсутствия схемы [1].Поэтому я подумал, что могу обмануть Spring, создав схему в строке подключения, как в:
application.properties
spring.datasource.url=jdbc:h2:mem:SCH;MODE=Oracle;DB_CLOSE_DELAY=-1;INIT=create schema if not exists SCH
spring.datasource.username=test
spring.datasource.password=test
, однако, как ни странно, это не помогло.Почему?
быстрый просмотр выдержки из журнала испытаний:
2019-02-13 17:48:12.735 INFO [CCH,,,] 28586 --- [ main] o.s.j.d.e.EmbeddedDatabaseFactory : Starting embedded database: url='jdbc:h2:mem:11247702-6bc4-44b9-be65-9639ebb8d695;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', username='sa'
хорошо, потому что @DataJpaTest игнорирует источник данных, настроенный в application.properties, и скорее использует автоматически настроенную базу данных h2
Я обнаружил, что могу использовать @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
, но это тоже не работает и не работает с Unknown host specified
.Какой хост ???
Итак, есть идеи, как заставить @DataJpaTest использовать настроенный источник данных?
[1] Используя @DataJpaTest, я не могу заставить h2 создать схему