Skip to content

Commit

Permalink
[fix] #105 member단에서 jpa로 구현 가능한 코드들 jpql에서 jpa로 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
Youngseo-Jeon0313 committed Apr 9, 2023
1 parent 45a97cd commit d3ef167
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@

public interface JpaMemberRepository extends JpaRepository<Member,Long> {
Optional<Member> findByEmail(String email);

boolean existsMemberByEmail(String email);
List<Member> findByNickName(String nickName);

List<Member> findAll();

Optional<Member> findById(Long memberId);
Member save(Member member);

int modifyMemberName(Long memberId, String nickName);




}
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,14 @@

import com.example.umc3_teamproject.domain.Member;
import com.example.umc3_teamproject.dto.*;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;


import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
import javax.sql.DataSource;;
import java.util.List;
import java.util.Optional;

//데이터베이스 관련 작업을 전담.
Expand All @@ -40,20 +35,6 @@ public Long createMember(SignupReq signupReq) {
}


// 이메일 확인
public boolean checkEmail(String email) {
return jpaMemberRepository.existsMemberByEmail(email);
}

// 회원정보 변경
public int modifyUserName(UpdateNickNameReq updateNickNameReq) {

return em.createQuery("update Member m set m.nickName = :nickName where m.id = :memberId")
.setParameter("nickName", updateNickNameReq.getNickName())
.setParameter("memberId", updateNickNameReq.getMemberId())
.executeUpdate();
}

@Transactional(readOnly = true)
// 로그인: 해당 email에 해당되는 user의 암호화된 비밀번호 값을 가져온다.
public Member getPw(LoginReq loginReq) {
Expand All @@ -63,27 +44,6 @@ public Member getPw(LoginReq loginReq) {
}


// 해당 nickname을 갖는 유저들의 정보 조회
@Transactional(readOnly = true)
public List<Member> getUsersByNickName(String name) {
return jpaMemberRepository.findByNickName(name);
}

@Transactional(readOnly = true)
public List<Member> getUsers() {
List<Member> members = em.createQuery("SELECT m FROM Member m", Member.class).getResultList();
return members;
}

// 해당 userIdx를 갖는 유저조회
public Member getUser(Long userIdx) {
String getUserQuery = "select m from Member m where m.id = :userIdx";
TypedQuery<Member> query = em.createQuery(getUserQuery, Member.class);
query.setParameter("userIdx", userIdx);

return query.getSingleResult();
}


//USER table tuple 삭제
@Transactional
Expand Down Expand Up @@ -131,7 +91,6 @@ public int getScriptsNum(Long userIdx) {
public int modifyIntroduction(UpdateIntroReq updateIntroReq) {
Member user = em.find(Member.class, updateIntroReq.getMemberId());
user.setIntroduction(updateIntroReq.getIntroduction());

return 1; // 변경 성공 시 1 반환
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import com.example.umc3_teamproject.domain.Tier;
import com.example.umc3_teamproject.dto.LoginReq;
import com.example.umc3_teamproject.dto.LoginRes;
import com.example.umc3_teamproject.dto.MemberRes;
import com.example.umc3_teamproject.repository.JpaMemberRepository;
import com.example.umc3_teamproject.repository.MemberRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
Expand All @@ -22,12 +22,14 @@ public class LoginService {
private final MemberRepository memberRepository;
private final JwtService jwtService; // JWT부분은 7주차에 다루므로 모르셔도 됩니다!

private final JpaMemberRepository jpaMemberRepository;
// final Logger logger = (Logger) LoggerFactory.getLogger(this.getClass());

@Autowired //readme 참고
public LoginService(MemberRepository memberRepository, JwtService jwtService) {
public LoginService(MemberRepository memberRepository, JwtService jwtService, JpaMemberRepository jpaMemberRepository) {
this.memberRepository = memberRepository;
this.jwtService = jwtService; // JWT부분은 7주차에 다루므로 모르셔도 됩니다!
this.jpaMemberRepository = jpaMemberRepository;
}
// ******************************************************************************

Expand Down Expand Up @@ -66,7 +68,7 @@ public LoginRes logIn(LoginReq loginReq) throws ResponseException {
// 해당 이메일이 이미 User Table에 존재하는지 확인
public boolean checkEmail(String email) throws ResponseException {
try {
return memberRepository.checkEmail(email);
return jpaMemberRepository.existsMemberByEmail(email);
} catch (Exception exception) {
throw new ResponseException(DATABASE_ERROR);
}
Expand All @@ -76,7 +78,7 @@ public boolean checkEmail(String email) throws ResponseException {
// User들의 정보를 조회
public List<Member> getUsers() throws ResponseException {
try {
List<Member> getUserRes = memberRepository.getUsers();
List<Member> getUserRes = jpaMemberRepository.findAll();
return getUserRes;
} catch (Exception exception) {
throw new ResponseException(DATABASE_ERROR);
Expand All @@ -86,7 +88,7 @@ public List<Member> getUsers() throws ResponseException {
// 해당 nickname을 갖는 User들의 정보 조회
public List<Member> getUsersByNickname(String nickname) throws ResponseException {
try {
List<Member> getUsersRes = memberRepository.getUsersByNickName(nickname);
List<Member> getUsersRes = jpaMemberRepository.findByNickName(nickname);
return getUsersRes;
} catch (Exception exception) {
throw new ResponseException(DATABASE_ERROR);
Expand All @@ -97,7 +99,7 @@ public List<Member> getUsersByNickname(String nickname) throws ResponseException
// 해당 userIdx를 갖는 User의 정보 조회
public Member getUser(Long userIdx) throws ResponseException {
try {
Member member = memberRepository.getUser(userIdx);
Member member = jpaMemberRepository.getById(userIdx);
int scriptnum=memberRepository.getScriptsNum(member.getId());


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.example.umc3_teamproject.config.resTemplate.ResponseException;
import com.example.umc3_teamproject.domain.Member;
import com.example.umc3_teamproject.dto.*;
import com.example.umc3_teamproject.repository.JpaMemberRepository;
import com.example.umc3_teamproject.repository.MemberRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
Expand All @@ -19,17 +20,19 @@ public class MemberService {

// *********************** 동작에 있어 필요한 요소들을 불러옵니다. *************************
private final MemberRepository memberRepository;
private final JpaMemberRepository jpaMemberRepository;

private final JwtService jwtService;
private final LoginService loginService;



@Autowired //readme 참고
public MemberService(MemberRepository memberRepository, LoginService loginService, JwtService jwtService) {
public MemberService(MemberRepository memberRepository, LoginService loginService, JwtService jwtService, JpaMemberRepository jpaMemberRepository) {
this.memberRepository = memberRepository;
this.loginService = loginService;
this.jwtService = jwtService; // JWT부분은 7주차에 다루므로 모르셔도 됩니다!

this.jpaMemberRepository = jpaMemberRepository;
}
// ******************************************************************************
// 회원가입(POST)
Expand Down Expand Up @@ -58,14 +61,14 @@ public SignupRes createUser(SignupReq signupReq) throws ResponseException {
}

public Member findById(Long userIdx) {
return memberRepository.getUser(userIdx);
return jpaMemberRepository.getById(userIdx);
}


// 회원정보 수정(Patch)
public void modifyNickName(UpdateNickNameReq updateNickNameReq) throws ResponseException {
try {
int result = memberRepository.modifyUserName(updateNickNameReq); // 해당 과정이 무사히 수행되면 True(1), 그렇지 않으면 False(0)입니다.
int result = jpaMemberRepository.modifyMemberName(updateNickNameReq.getMemberId(), updateNickNameReq.getNickName()); // 해당 과정이 무사히 수행되면 True(1), 그렇지 않으면 False(0)입니다.
if (result == 0) { // result값이 0이면 과정이 실패한 것이므로 에러 메서지를 보냅니다.
throw new ResponseException(MODIFY_FAIL_NICKNAME);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Optional;

Expand Down

0 comments on commit d3ef167

Please sign in to comment.