[Clone Coding] 인스타그램 - Repository(5)

Cho Doil·2023년 2월 7일

clone-coding

목록 보기
5/7

Repository 구현

먼저 repository를 구현했다.
그 중 잘 모르는 어노테이션이 있다. 정리해보자.

  • @Query:SQL과 유사한 JPQL이라는 객체지향 쿼리 언어를 통해 복잡한 쿼리 처리를 지원한다.

JPQL은 알고 있었지만 본인이 참고한 코드에는 SQL문이 있었다.
이유는 바로 다음에 위치한 nativeQuery가 true로 되어있었기 때문이다.
nativeQuery: 이는 이름 그대로 JPQL이 아닌 SQL문을 사용할 수 있게 해준다. JPQL로 바꾸는 것은 쉽기 때문에 코드를 수정해줬다.

  • @Modifying: @Query 어노테이션을 통해 작성된 insert, update, delete(select 제외) 쿼리에서 사용되는 어노테이션이다.

Repository 분석

이제 Repository를 분석해보자.

  • UserRepository:
    Email로 User를 찾는 추가 메서드를 구현해줬다.

  • PostRepository:
    Query문을 이용해 메인과 검색 결과를 조회하는 메소드를 구현했다. 둘 다 페이징으로 처리해준다.
    메인은 팔로우한 사람들의 스토리만 조회한다.
    검색 결과는 tag와 검색문을 비교해서 조회한다.

  • LikesRepository: 두 메서드가 있다.
    post를 특정 user_id가 좋아요 눌렀을 때 Likes 테이블에 post와 user_id를 저장하고 좋아요를 취소 했을 때 테이블에서 삭제된다.

  • FollowRepository:
    follow 테이블 조회 기능과 팔로워 수, 팔로잉 수를 조회하는 기능이 있다.
    그리고 팔로우와 언팔로우 기능도 구현했다.

  • CommentRepository:
    comment를 삭제하는 기능이 구현되어 있다.

마지막으로

사실 할 수 있는 것 까진 모두 끝냈다.
하나하나 끝까지 올릴 생각이다.

profile
초보 개발자의 저장소

0개의 댓글