반응형
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 |