Hibernate не удаляет базу данных H2, когда FK существует - PullRequest
0 голосов
/ 10 февраля 2020

H2Dialect.dropConstraints имеет комментарий

// We don't need to drop constraints before dropping tables, that just leads to error
// messages about missing tables when we don't have a schema in the database

Но, похоже, это неправильно, когда мой следующий Unittest-Class начинается с настраиваемых свойств, установленных

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = {
        "aaa=bbb"})

, создается новый контекст и Hibernate пытается удалить схему, чтобы создать ее заново. Что приводит к исключениям из ограничений:

Cannot drop "XXX" because "FK_XXX, FK_XXX, FK_XXX, FK_XXX" depends on it; SQL statement:

    drop table xxx if exists [90107-200]

Почему не удаляются ограничения H2Dialect правильно?

1 Ответ

0 голосов
/ 10 февраля 2020

H2 1.4.200 более соответствует стандарту SQL, чем более ранние версии, и Hibernate пока не поддерживает изменения в этой версии, но есть запрос на удаление с исправлением для H2Dialect (я не тестировал это): # 3093 . Вы можете попробовать использовать собственный диалект с похожими изменениями.

См. Также HHH-13711 .

...