Не загрязняет ли настройка Spring.jpa.hibernate.ddl-auto для создания-отбрасывания в тестовом контейнере Singleton мой кJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Не загрязняет ли настройка Spring.jpa.hibernate.ddl-auto для создания-отбрасывания в тестовом контейнере Singleton мой к

Сообщение Anonymous »

У меня есть следующий одноэлементный контейнер, как описано в разделе «Жизненный цикл тестовых контейнеров»

Код: Выделить всё

public abstract class AbstractPostgresIT {
static PostgreSQLContainer POSTGRES_CONTAINER =
new PostgreSQLContainer(DockerImageName.parse("postgres:16")).withDatabaseName("ems")
.withUsername("username").withPassword("password");

static {
POSTGRES_CONTAINER.start();
}

@DynamicPropertySource
public static void dynamicPropertySource(DynamicPropertyRegistry registry) {
registry.add("spring.datasource.url", POSTGRES_CONTAINER::getJdbcUrl);
registry.add("spring.datasource.username", POSTGRES_CONTAINER::getUsername);
registry.add("spring.datasource.password", POSTGRES_CONTAINER::getPassword);
registry.add("spring.jpa.hibernate.ddl-auto", () -> "create-drop");
}
}
У меня есть два класса, расширяющих AbstractPostgresIT (один @DataJpaTest и один @SpringBootTest). Иногда (до сих пор это случайная ситуация, и я не понял шаблона струи) при запуске mvn Clean Verify я получаю сообщение об ошибке

Код: Выделить всё

HikariPool-2 - Failed to validate connection org.postgresql.jdbc.PgConnection@4ec6f11d (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
Мне интересно и я пытаюсь понять, не загрязняет ли этот подход мой контекст, путая HikariPool с одноэлементным контейнером. Тогда я мог бы с чистой совестью добавить @DirtiesContext в AbstractPostgresIT. Но я не опытный пользователь Spring, поэтому хотелось бы подробно разобраться в том, что здесь происходит, тем более, что это происходит случайным образом. Влияет ли установка Spring.jpa.hibernate.ddl-auto на create-drop на мой ApplicationContext? Если да, то почему? Если нет, есть ли другие проблемы, о которых я мог не знать?
РЕДАКТИРОВАТЬ: я могу подтвердить, что второй ИТ-процесс выходит из строя, если есть «только» HikariPool-2, но работает, если есть HikariPool-3. Итак, обновленный вопрос: могу ли я принудительно создать новый HikariPool с помощью @DirtiesContext и является ли это хорошей практикой?

Подробнее здесь: https://stackoverflow.com/questions/788 ... gleton-tes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»