읽지 않은 알림 갯수 반환 하기
FE로부터 요청이 왔습니다. 읽지 않은 알림의 갯수를 보내달라고 합니다. API를 새로 파서 보내기로 결정 했습니다. Event 발생할때 마다 넣어달라고 처음에 요청하셨는데 Transactional 이슈가 발생할 것 같아서 우선 API를 따로 만들어서 구현하기로 했습니다.
DB에서 바로 몇개인지 세서 보내기 위해서 Query를 직접 작성하기로 했습니다.
JPQL
@Transactional
@Query("SELECT COUNT(n) from Notification n where n.receiver.nickname =:nickname and n.isRead = false")
Long countUnreadNotifications(String nickname);
Count를 써서 조건에 해당하는 값들을 셌습니다.
해당 nickname을 가지고 있는 수신자(receiver)를 가지고 있는 notification의 isRead 칼럼이 false이면 count를 합니다.
생각보다 간단해서 다행이었습니다.
querydsl를 써보려다 더 복잡한 거 같아 간단한 JPQL을 사용해서 읽지않은 알림 갯수를 가져오는 메서드를 구현했습니다.
'Things to know' 카테고리의 다른 글
Spring Boot Gradle Swagger 3.0.0 설정하기 (0) | 2023.03.12 |
---|---|
트러블 슈팅: 게시글 좋아요가 반영이 안되는 현상 (1) | 2023.03.07 |
Spring IllegalStateException 에러 설명 및 해결 (0) | 2023.01.17 |
[Spring 에러 해결] Inferred type 'S' for type parameter 'S' is not within its bound; should extend (0) | 2023.01.04 |
ModifiedAt CreatedAt 이 null 값으로 나올 때 오류 해결 @EnableJpaAuditing (0) | 2022.12.13 |