2012-05-03 4 views
2

Я только начал писать свои первые модульные тесты с JUnit, и у меня возникла небольшая проблема. В моих модульных тестах я вставляю новые данные в свою базу данных MySql. После того, как я добавил свою информацию, я удаляю эту же информацию в следующем модульном тесте.Сброс значения автоинкремента базы данных MySql с JPA

Мой стол-идентификатор Автоинкрементный и с каждым блоком-теста я запускаю значение для следующего идентификатора увеличивается с 1.

Я реализовал новый метод с @AfterClass аннотацию так, что после того, как я m, выполненный с помощью моих модульных тестов, он сбросит значение приращения. Я использовал этот запрос:

entityManager.createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1"); 

Если добавить новую информацию непосредственно в мою базу данных MySql значения следующего идентификатора не то, что я хочу, чтобы это было (последнее значение ID в моей таблице +1).

Однако, когда я запускаю sql-запрос непосредственно в базе данных, запрос действительно работает.

Мой вопрос: невозможно ли выполнять такие запросы при модульном тестировании? Или я полностью смотрю на это неправильно.

Я использую Java, весна, спящий режим, JPA, JUnit

Спасибо заранее!

ответ

3

Вы создали запрос, но забыл выполнить его:

entityManager 
    .createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1") 
    .executeUpdate(); 
+0

Omg .. Я чувствую себя глупо .. Спасибо за ответ! –

Смежные вопросы