기존에 @Entity를 이용한 엔티티에 대해 다루는 domain 폴더가 존재 → 다만, spring security의 userdetails를 구현하는 AuthUser, OAuthUserDetails가 존재 → AuthUser 클래스명을 AuthUserDetails로 변경 및 이 두 클래스를 포함하는 폴더명을 entity에서 userdetails로 변경
Auth 도메인 클래스내에
public void updatePassword(String password){
this.password = password;
}
라는 set 역할을 하는 메서드가 존재
→ 이 메서드를 삭제하고 Service 계층에서 dto를 이용하여 entity를 Builder를 통해 재 생성하는 방식으로 변경
public void putPassword(PasswordRequestDto passwordRequestDto) {
Auth auth = authRepository.findByUuid(passwordRequestDto.getUuid()).orElseThrow(
() -> new BaseException(BaseResponseStatus.NO_EXIST_USER)
);
// Auth 엔티티에 대해 기존 id값을 이용한 업데이트 builder 형식 적용
Auth updatedAuth = Auth.builder()
.id(auth.getId())
.uuid(auth.getUuid())
.password(passwordEncoder.encode(passwordRequestDto.getPassword()))
.loginId(auth.getLoginId())
.userEmail(auth.getUserEmail())
.build();
authRepository.save(updatedAuth);
}
기본적으로도 중복될 확률은 낮음
하지만 만약을 대비
String createdUuid = UUID.randomUUID().toString();
while (authRepository.existsByUuid(createdUuid)){
createdUuid = UUID.randomUUID().toString();
}