본문 바로가기
Jpa

[Jpa 에러] javax.persistence.NonUniqueResultException: query did not return a unique result: 2

by 소금_msg 2022. 9. 9.
query did not return a unique result: 2; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 2] with root cause
  javax.persistence.NonUniqueResultException: query did not return a unique result: 2

토이프로젝트 중 휴대폰번호로 아이디를 조회해서 인증하는 기능을 만들었는데 갑자기 오류가 떴다.

 

[원인]

unique하지 않은 결과가 2개가 나왔다고 하는데

DB에서 테스트 번호로 조회해보니

회원 목록에서 같은 휴대폰 번호로 가입한 회원이 2명 있어서 오류가 났던 것.

 

[해결]

휴대폰번호가 같은 회원 데이터를 하나 지우고 엔티티랑 데이터베이스에 unique 제약조건을 추가해주었다.

 

Member.class 

            @Column(name="phoneNum", length = 20, nullable = false, unique = true)
            private String phoneNum;      //  회원휴대폰번호

unique= true 추가

 

mariaDB

ALTER TABLE tbl_member ADD CONSTRAINT `UNIQUE` UNIQUE KEY (phoneNum);

tbl_member 테이블 phoneNum칼럼에 유니크 제약조건 추가

 

 

조회가 잘 되었다.

https://write-space.tistory.com/15