Skip to content

Commit

Permalink
Merge pull request #139 from team-offonoff/fix/comment
Browse files Browse the repository at this point in the history
fix: 댓글 삭제 시 멤버와 토픽이 모두 삭제되지 않게 한다
  • Loading branch information
60jong authored Jan 16, 2024
2 parents 7471ab8 + 4659e92 commit 24dc2e9
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/main/java/life/offonoff/ab/domain/comment/Comment.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ public class Comment extends BaseEntity {

private String content;

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member writer;

@Enumerated(EnumType.STRING)
private ChoiceOption writersVotedOption;

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "topic_id")
private Topic topic;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class Choice extends BaseEntity {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@JoinColumn(name = "topic_id")
private Topic topic;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import life.offonoff.ab.domain.comment.Comment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import java.util.Optional;

Expand All @@ -11,5 +13,7 @@ public interface CommentRepository extends JpaRepository<Comment, Long>, Comment

int countAllByWriterIdAndTopicId(Long writerId, Long topicId);

@Modifying
@Query("delete from Comment c where c.writer.id = :writerId and c.topic.id = :topicId")
int deleteAllByWriterIdAndTopicId(Long writerId, Long topicId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,21 @@ void delete_writers_comments() {
// given
Member member = memberRepository.save(new Member("email", "pass", Provider.NONE));
Topic topic = topicRepository.save(new Topic("topic", TopicSide.TOPIC_A));

commentRepository.save(new Comment(member, topic, ChoiceOption.CHOICE_A, "content1"));
commentRepository.save(new Comment(member, topic, ChoiceOption.CHOICE_A, "content2"));

Member member2 = memberRepository.save(new Member("email2", "pass", Provider.NONE));
commentRepository.save(new Comment(member2, topic, ChoiceOption.CHOICE_A, "content3"));

// when
commentRepository.deleteAllByWriterIdAndTopicId(member.getId(), topic.getId());
int removed = commentRepository.deleteAllByWriterIdAndTopicId(member.getId(), topic.getId());

// then
assertThat(commentRepository.countAllByWriterIdAndTopicId(member.getId(), topic.getId()))
.isEqualTo(0);
assertThat(commentRepository.countAllByWriterIdAndTopicId(member2.getId(), topic.getId()))
.isEqualTo(1);
assertThat(removed).isEqualTo(2);
assertThat(memberRepository.count()).isEqualTo(2L);
}
}

0 comments on commit 24dc2e9

Please sign in to comment.