[회원 조회 개선] MemberRepository와 MemberService에서 사용자 ID로 활성화된 회원을 조회하는 메서드 이름 변경 및 쿼리 조건 수정. 사용자 조회 로직을 개선하여 더 명확한 기능 제공.

This commit is contained in:
2025-08-22 13:52:09 +09:00
parent 1ce08cb981
commit 7ae5871ae0
4 changed files with 10 additions and 16 deletions

View File

@@ -8,7 +8,7 @@ import java.util.Optional;
import java.util.List; import java.util.List;
@Repository @Repository
public interface MemberRepository extends JpaRepository<Member, Long> { public interface MemberRepository extends JpaRepository<Member, Long>, MemberRepositoryCustom {
// 사용자 ID로 회원 조회 (Optional 반환) // 사용자 ID로 회원 조회 (Optional 반환)
Optional<Member> findByUserId(String userId); Optional<Member> findByUserId(String userId);

View File

@@ -14,13 +14,12 @@ import java.util.Optional;
public interface MemberRepositoryCustom { public interface MemberRepositoryCustom {
/** /**
* 사용자 ID로 회원을 조회합니다. * 활성화된 사용자 중에서 사용자 ID로 검색하여 조회합니다.
* QueryDSL을 사용하여 더 유연한 쿼리 작성이 가능합니다.
* *
* @param userId 사용자 ID * @param userId 사용자 ID
* @return Optional<Member> 회원 정보 (없으면 empty) * @return Optional<Member> 회원 정보 (없으면 empty)
*/ */
Optional<Member> findByUserIdCustom(String userId); Optional<Member> findActiveMemberByUserId(String userId);
/** /**
* 역할(Role)별로 회원 목록을 조회합니다. * 역할(Role)별로 회원 목록을 조회합니다.

View File

@@ -32,12 +32,12 @@ public class MemberRepositoryImpl implements MemberRepositoryCustom {
private final QMember member = QMember.member; private final QMember member = QMember.member;
@Override @Override
public Optional<Member> findByUserIdCustom(String userId) { public Optional<Member> findActiveMemberByUserId(String userId) {
// QueryDSL을 사용하여 사용자 ID로 회원을 조회합니다. // 활성화된 사용자 중에서 사용자 ID로 검색
// eq() 메서드를 사용하여 정확한 일치 조건을 설정합니다.
Member foundMember = queryFactory Member foundMember = queryFactory
.selectFrom(member) .selectFrom(member)
.where(member.userId.eq(userId)) .where(member.userId.eq(userId)
.and(member.useFlag.eq(true)))
.fetchOne(); .fetchOne();
return Optional.ofNullable(foundMember); return Optional.ofNullable(foundMember);

View File

@@ -32,7 +32,7 @@ public class MemberServiceImpl implements MemberService {
@Override @Override
public UserDetails loadUserByUsername(String id) throws UsernameNotFoundException { public UserDetails loadUserByUsername(String id) throws UsernameNotFoundException {
Member member = memberRepository.findByUserIdAndUseFlagTrue(id) Member member = memberRepository.findActiveMemberByUserId(id)
.orElseThrow(() -> new UsernameNotFoundException("사용자를 찾을 수 없습니다: " + id)); .orElseThrow(() -> new UsernameNotFoundException("사용자를 찾을 수 없습니다: " + id));
// MapStruct를 사용하여 Member 엔티티를 MemberDto로 변환 // MapStruct를 사용하여 Member 엔티티를 MemberDto로 변환
@@ -45,7 +45,7 @@ public class MemberServiceImpl implements MemberService {
@Transactional @Transactional
public MemberDto createMember(MemberDto memberDto) { public MemberDto createMember(MemberDto memberDto) {
// userId 중복 체크 // userId 중복 체크
if (memberRepository.existsByUserIdAndUseFlagTrue(memberDto.getUserId())) { if (memberRepository.existsByUserId(memberDto.getUserId())) {
throw new ApiException(ApiResponseCode.USER_ID_DUPLICATE); throw new ApiException(ApiResponseCode.USER_ID_DUPLICATE);
} }
@@ -73,11 +73,6 @@ public class MemberServiceImpl implements MemberService {
.orElseThrow(() -> new ApiException(ApiResponseCode.USER_NOT_FOUND)); .orElseThrow(() -> new ApiException(ApiResponseCode.USER_NOT_FOUND));
memberMapper.updateMemberFromDto(memberDto, member); memberMapper.updateMemberFromDto(memberDto, member);
if (memberDto.getPassword() != null && !memberDto.getPassword().isEmpty()) {
member.setPassword(bCryptPasswordEncoder.encode(memberDto.getPassword()));
}
memberRepository.save(member); memberRepository.save(member);
return 1; return 1;
} }