[Spring] Caused by: jakarta.persistence.NonUniqueResultException
문제 상황
일부 테스트 코드를 돌려보는 도중 에러가 발생했다. querydsl 쿼리에서 fetchOne()
을 쓰고 있었는데 해당 함수를 호출하니
다음 에러가 발생했다.
Caused by: jakarta.persistence.NonUniqueResultException at MallServiceTest.java:36
해결 방법
NonUniqueResultException
은 fetchOne()
을 호출했을 때 쿼리에 해당되는 데이터가 2건 이상있으면 발생하는 에러다.
테스트 데이터는 분명 1개만 넣어서 문제가 없을거라 생각했는데 테스트 클래스들을 자세히 보니 이전 테스트가 끝났을 때 롤백해주는
로직이 없어서 이전 테스트 데이터가 그대로 남아있는 상태라 에러가 발생한 것이었다. 모든 테스트 함수가 다른 테스트 함수에 영향을
주지 않도록 @Transactional
을 붙여줬다.
@Transactional
@SpringBootTest
class MallServiceTest { ... }
댓글남기기