[회원 조회 개선] 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;
@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {
public interface MemberRepository extends JpaRepository<Member, Long>, MemberRepositoryCustom {
// 사용자 ID로 회원 조회 (Optional 반환)
Optional<Member> findByUserId(String userId);
@@ -30,4 +30,4 @@ public interface MemberRepository extends JpaRepository<Member, Long> {
// 활성화된 회원 목록 조회
List<Member> findByUseFlagTrue();
}
}

View File

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

View File

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

View File

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