회원가입 기능을 만들면서 닉네임 중복 확인을 위해 DB에 있는 정보와 받은 user를 isPresent 으로 확인하려는데 입력해도 적용되지 않고 계속 빨간줄이 나왔다.
과거 프로젝트 파일과 비교해보니 사용한 쿼리 메서드(findBynickName)를 그냥 User로 만들어서 생긴 문제였다. isPresent 자체가 Option에서 지원하는 기능이기 때문에 쿼리 메서드를 Option으로 만들어야 사용 가능하다고 하다.
앞에 Option을 붙이니 바로 해결됐다.
NULL이 올 수 있는 값을 감싸는 Wrapper 클래스로, NPE가 발생하지 않도록 도움을 준다.
userRepository.findBynickName(name).isPresent()
=> 변수 name의 값이 userRepository에 있는지 찾는다.
userRepository.findById(id).ifPresent(a -> {
throw new Exception("존재하는 데이터입니다.");
// 입력한 값이 있으면 위의 Exception 실행
});
// 없으면 종료됨