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칼럼에 유니크 제약조건 추가
조회가 잘 되었다.
'Jpa' 카테고리의 다른 글
[Jpa] modifying queries can only use void or int/Integer as return type 에러 (0) | 2022.09.08 |
---|