diff --git a/src/main/java/server/loop/domain/post/entity/repository/PostRepository.java b/src/main/java/server/loop/domain/post/entity/repository/PostRepository.java index 2153069..9863830 100644 --- a/src/main/java/server/loop/domain/post/entity/repository/PostRepository.java +++ b/src/main/java/server/loop/domain/post/entity/repository/PostRepository.java @@ -17,16 +17,19 @@ public interface PostRepository extends JpaRepository { @Modifying @Query("UPDATE Post p SET p.reportCount = p.reportCount + 1 WHERE p.id = :postId") - void incrementReportCount(@Param("postId") Long postId); // 필요 시 Optimistic Lock 추가 + void incrementReportCount(@Param("postId") Long postId); Optional findByIdAndIsDeletedFalse(Long id); - @Query("SELECT p FROM Post p ORDER BY p.createdAt DESC") + // 전체 목록: 삭제되지 않은 것만 + @Query("SELECT p FROM Post p WHERE p.isDeleted = false ORDER BY p.createdAt DESC") Slice findAllActivePosts(Pageable pageable); - @Query("SELECT p FROM Post p WHERE p.category = :category ORDER BY p.createdAt DESC") + // 카테고리 목록: 삭제되지 않은 것만 + @Query("SELECT p FROM Post p WHERE p.category = :category AND p.isDeleted = false ORDER BY p.createdAt DESC") Slice findAllActivePostsByCategory(@Param("category") Category category, Pageable pageable); + // 상세: 이미 isDeleted 조건 포함 (유지) @Query("SELECT p FROM Post p " + "LEFT JOIN FETCH p.author " + "LEFT JOIN FETCH p.comments c " + @@ -34,7 +37,7 @@ public interface PostRepository extends JpaRepository { "WHERE p.id = :id AND p.isDeleted = false") Optional findActivePostWithCommentsById(@Param("id") Long id); - - @Query("SELECT p FROM Post p WHERE p.author = :author ORDER BY p.createdAt DESC") + // 작성자별 목록: 삭제되지 않은 것만 + @Query("SELECT p FROM Post p WHERE p.author = :author AND p.isDeleted = false ORDER BY p.createdAt DESC") Slice findActivePostsByAuthor(@Param("author") User author, Pageable pageable); } \ No newline at end of file diff --git a/src/main/java/server/loop/domain/post/service/PostService.java b/src/main/java/server/loop/domain/post/service/PostService.java index 7c11af0..9dac46b 100644 --- a/src/main/java/server/loop/domain/post/service/PostService.java +++ b/src/main/java/server/loop/domain/post/service/PostService.java @@ -141,7 +141,6 @@ public void deletePost(Long postId, String email) throws AccessDeniedException { throw new AccessDeniedException("게시글을 삭제할 권한이 없습니다."); } - // 4. 게시글 삭제 로직 (여기서 외래 키에 따른 이미지 삭제 등) - postRepository.delete(post); + post.softDelete(); } } \ No newline at end of file