2012-05-03 8 views
2

JUnit으로 처음으로 단위 테스트를 작성하기 시작한 후 작은 문제가 발생했습니다. 내 단위 테스트 내 새 데이터를 내 MySql 데이터베이스에 삽입하고 있습니다. 내 정보를 추가 한 후에는 다음 단위 테스트에서 동일한 정보를 삭제합니다.JPA로 MySql 데이터베이스의 자동 증가 값 재설정

내 테이블 ID가 자동 증가하고, 각 단위 테스트와 나는이 @AfterClass 주석으로 새로운 방법을 구현 1.

으로 증가 다음 ID 값을 실행 나 '이후 있도록 내 단위 테스트를 끝내면 증분 값이 재설정됩니다. 내 MySQL 데이터베이스에 직접 새로운 정보를 추가 할 경우 다음 ID 값이 나는 그것이 (내 표 1에서 마지막 ID 값)으로 원하는 것이 아니다

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

:이 쿼리를 사용했다.

그러나 데이터베이스에서 직접 SQL 쿼리를 실행하면 쿼리가 작동합니다.

질문 : 단위 테스트 중에 이러한 종류의 쿼리를 실행할 수 있습니까? 아니면 완전히 잘못된 방향으로보고 있습니다. 나는 자바, 스프링을 사용하고

, 사전에 JUnit을, JPA,

감사를 최대 절전 모드!

답변

3

당신은 쿼리를 생성하지만, 그것을 실행하는 것을 잊었다 :

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

이 세상에 .. 내가 바보가 된 기분 .. 답변 주셔서 감사합니다! –

관련 문제