프로젝트 수정 중
community엔티티를 scrap, comment 각각 엔티티와 @OneToMany으로 연관관계 설정을 해 놓았는데
community에서 scrap수와 comment수를 dto에 담아 반환해야했다.
dto에 필드를 추가하고 mapper에서 builder에 추가하여 반환을 하며 postman으로 테스트를 하였는데 이상한 부분을 발견하였다.
localhost:8080/api/community/42로 get 요청을 보낸 반환값 중 scraps가 2가 나왔는데

데이터베이스에서는 is_deleted로 하나가 삭제되어 scraps가 1이 나와야 했다.

scrap 엔티티의 코드를 살펴보니 @Where(clause = "is_deleted = false")가 빠져있었다.
이전에 코드를 작성할 때 scrap 테이블에 스크랩을 누를 때 마다 삭제하고 새로 만드는 방식이 아니라 처음 한번만 생성하고 이후 삭제를 하거나 삭제된 스크랩을 재등록할 때 is_deleted의 값을 0,1로 바꾸며 삭제 또는 복구하는 방식을 사용하려 코드를 추가하지 않았었는데 이러한 과정에서 jpa를 사용하여 is_deleted가 1인 데이터를 조회 할 수 있어야 했으므로 @Where(clause = "is_deleted = false") 해당 코드를 작성하지 않았던 기억이 났다.
지금 생각으로는 @Where(clause = "is_deleted = false")를 추가하고 복구하는 코드를 jpa가아닌 native로 작성하는 방식으로 해결해야 할 것 같다.
이후 더 좋은 해결 방식이 생각나거나 해결한 이후 글을 추가로 작성해야 할 것 같다.