오늘은 팔로우, 팔로우 취소 기능을 구현하면서 발생한 이슈에 대해 기록해보자.
일단 내가 원한 것은 팔로우 혹은 팔로우 취소를 누르면 만들어놓은 메서드를 통해 DB 에서 id 값을 조회해서 status 가 true 혹은 false 로 변경되는 플래그를 만드는 것이었다. 그래서 JPA 에서 지원하는 existsBy 메서드를 아래와 같이 만들고 어플리케이션을 실행시켜 보았는데 플래그에는 전혀 변경되는 사항이 없었다.
boolean existsByUserIdAndFollowingId(UserId userId, FollowingId followingId);
그래서 조금 더 쿼리문을 정확히 해주기 위해 JPQL 을 사용했는데, 아래와 같은 오류가 떴다. 확인해보니 JPQL 에서는 select exists 문법은 지원하지 않는다고 한다. (where 절의 exists 는 사용 가능)
그래서 아래와 같이 개수를 세어주는 count 로 방향을 틀어 쿼리문을 작성해주니 플래그의 true, false 스위칭이 잘 동작되었다!
@Query("select count(s.followingId) > 0 from Subscribe s where s.userId = :userId and s.followingId = :followingId")
boolean existsByUserIdAndFollowingId(UserId userId, FollowingId followingId);
'TIL' 카테고리의 다른 글
Plmography 프로젝트 작업 로그 #43 - 기획의 중요성 (23.02.02 TIL) (0) | 2023.02.02 |
---|---|
Plmography 프로젝트 작업 로그 #42 - 배열로 된 데이터 서버로 보내기 (23.02.01 TIL) (0) | 2023.02.01 |
Plmography 프로젝트 작업 로그 #40 - 탐색 페이지 필터링 구현 (23.01.30 TIL) (0) | 2023.01.30 |
Plmography 프로젝트 작업 로그 #39 - 비즈니스 로직 테스트 코드는 확실하게! (23.01.20 TIL) (0) | 2023.01.20 |
Plmography 프로젝트 작업 로그 #38 - 상세 페이지 구현 완료 (23.01.19 TIL) (0) | 2023.01.19 |
댓글