code
:
"UNKNOWN_EXCEPTION"
message
:
"query did not return a unique result: 3; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 3"
해당 예외는 동일한 2 사용자 사이의 채팅방이 2개 이상 있는 경우 발생
chatRoomRepository 의 findByMembers 메서드를 Optional에서 List로 수정
@Query("select c from ChatRoom c where (c.sender = :member1 and c.receiver = :member2) or (c.sender = :member2 and c.receiver = :member1)")
List<ChatRoom> findByMembers(@Param("member1") Member member1, @Param("member2") Member member2);
getMatchedNungil에서 findByMembers를 통해 반환된 ChatRoom이 2개 이상일 시 예외 발생하게끔 처리
List<ChatRoom> chatRooms = chatRoomRepository.findByMembers(nungil.getMember(), nungil.getReceiver());
// chat room 2개 이상일 경우 예외 처리
if (chatRooms.size() > 1) {
throw new GeneralException(ChatRoomErrorResult.CHAT_ROOM_MORE_THAN_ONE);
}
// 두 사용자가 속한 채팅방이 존재하지 않는 경우 null을 반환한다.
Long chatRoomId = chatRooms.isEmpty() ? null : chatRooms.get(0).getId();
🔥 Related Issues
💜 작업 내용
✅ PR Point
findByMembers
메서드를 Optional에서 List로 수정getMatchedNungil
에서 findByMembers를 통해 반환된 ChatRoom이 2개 이상일 시 예외 발생하게끔 처리