Spring / Hibernate-тестирование - как удалить схему после завершения? - PullRequest
1 голос
/ 24 марта 2012

Я пытаюсь научиться тестированию интеграции с Spring и Hibernate. Я хотел бы, чтобы он создал схему перед запуском тестов и отбросил ее, когда тесты закончатся, чтобы они всегда начинали очищаться.

hibernate.hbm2ddl.auto=create-drop делает для меня первую часть: создание схемы. Но как мне заставить его уронить его?

Я тестирую его, развернув свое приложение на JBoss. Схема создана правильно, но при удалении или остановке сервера она не удаляется. Как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 25 марта 2012

Один из способов - зарегистрировать пользовательский компонент в вашем applicationContext , который реализует ApplicationListener<ContextClosedEvent> для получения событий отключения , вставить JdbcTemplate в этот компонент и позволить ему вызвать DROP SCHEMA ... или как вы хотите.

0 голосов
/ 25 марта 2012

Вы можете использовать что-то вроде DBUnit для управления созданием и удалением таблиц базы данных.

0 голосов
/ 25 марта 2012

вы должны написать слушатель, который реализует интерфейс ServletContextListener.Когда вы реализуете этот интерфейс, вам необходимо переопределить методы contextInitialized и contextDestroyed.В методе ContextDestroyed вы можете написать код схемы удаления.

0 голосов
/ 24 марта 2012

Если я правильно помню, это работает так

Первое развертывание: создание новых таблиц из схемы

Второе развертывание: удаляет старые таблицы и создает

...