More than one row with the given identifier was found: 1
지정된 식별자를 가진 두 개 이상의 행이 발견되었습니다.
public class User {
...
@OneToOne(fetch = FetchType.LAZY, mappedBy = "user")
Board board;
...
}
public User findOneFetch(Long id) {
User findUser = userRepository.findById(id)
.orElseThrow(() -> new IllegalArgumentException("찾는 사용자가 존재하지 않습니다."));
...
}
User를 찾는 과정인 userRepository.findById(id)에서 오류가 발생했다.
분명 식별자가 1인 User 데이터는 1개인데 왜 이런 오류가 발생할까 고민을 해봤다.
애초에 User 데이터가 1개밖에 없었기에 다른 부분에서 찾았는데 이때 User와 Board는 일대일 관계였는데 Postman으로 테스트를 할 때 생각없이 해당 User로 Board를 2개 생성했기에 나는 오류였다. User는 Board를 지연로딩 설정해둬서 프록시 객체를 가져와야 했는데 일대일 관계인데 해당 User에 대한 Board가 2개가 있으니까 위 코드에서 문제가 발생한 것이다.