SpringBoot를 이용해 개발을 하며 test 케이스를 작성하고 실행을 하였다
그리고 각 테스트 케이스 마다 영향을 주지 않기 위해
@After 어노테이션으로 각 repository.deleteAll() 메소드를 실행하도록 하였다.
그런데 ??
org.hibernate.exception.ConstraintViolationException: could not execute statement
이런 에러가 발생하였다.
여기에 어느정도 잘 나와있는 것 같다.
Hibernate를 사용하여 테스트 하는 환경에서 나타나는 일반적인 에러란다~
원인은 코드의 쿼리가 순차적으로 즉시 수행되는 것이 아니기 때문이다.
그래서 deleteAll() 대신 deleteAllInBatch()를 사용해서 해결했다.
deleteAll()은 delete를 여러번 실행하며 모두 삭제하는 것이고, deleteAllInBatch()는 한번의 실행으로 전부를 삭제하는 것이다.
'Spring Framework > 에러' 카테고리의 다른 글
[Spring boot yml 파일에서 값 가져오기] Spring boot load data from yml file (0) | 2019.08.03 |
---|---|
[Spring JPA] No serializer found for class org.hibernate 에러 (0) | 2019.07.24 |
[Spring JPA insertable, updatable] (1) | 2019.07.23 |
[Spring boot + JPA Hibernate 오류] error executing ddl via jdbc statement (0) | 2019.07.22 |
[SpringBoot Test different yml load] (1) | 2019.07.11 |