diff --git a/src/main/java/com/back/domain/cocktail/comment/entity/CocktailComment.java b/src/main/java/com/back/domain/cocktail/comment/entity/CocktailComment.java index 4676c0c7..5f0a5e2a 100644 --- a/src/main/java/com/back/domain/cocktail/comment/entity/CocktailComment.java +++ b/src/main/java/com/back/domain/cocktail/comment/entity/CocktailComment.java @@ -15,6 +15,10 @@ import java.time.LocalDateTime; @Entity +@Table( + name = "cocktail_comment", + uniqueConstraints = @UniqueConstraint(columnNames = {"cocktail_id", "user_id"}) // 사용자 1개 댓글 제한 +) @Getter @EntityListeners(AuditingEntityListener.class) @NoArgsConstructor(access = lombok.AccessLevel.PROTECTED) diff --git a/src/main/java/com/back/domain/cocktail/comment/repository/CocktailCommentRepository.java b/src/main/java/com/back/domain/cocktail/comment/repository/CocktailCommentRepository.java index 6f376622..758012ee 100644 --- a/src/main/java/com/back/domain/cocktail/comment/repository/CocktailCommentRepository.java +++ b/src/main/java/com/back/domain/cocktail/comment/repository/CocktailCommentRepository.java @@ -12,4 +12,6 @@ public interface CocktailCommentRepository extends JpaRepository findTop10ByCocktailIdOrderByIdDesc(Long cocktailId); List findTop10ByCocktailIdAndIdLessThanOrderByIdDesc(Long cocktailId, Long lastId); + + boolean existsByCocktailIdAndUserId(Long cocktailId, Long id); } diff --git a/src/main/java/com/back/domain/cocktail/comment/service/CocktailCommentService.java b/src/main/java/com/back/domain/cocktail/comment/service/CocktailCommentService.java index bf2aaf78..8cf0d20c 100644 --- a/src/main/java/com/back/domain/cocktail/comment/service/CocktailCommentService.java +++ b/src/main/java/com/back/domain/cocktail/comment/service/CocktailCommentService.java @@ -31,6 +31,12 @@ public CocktailCommentResponseDto createCocktailComment(Long cocktailId, Cocktai Cocktail cocktail = cocktailRepository.findById(cocktailId) .orElseThrow(() -> new IllegalArgumentException("칵테일이 존재하지 않습니다. id=" + cocktailId)); + // 사용자당 댓글 1개 제한 체크 + boolean exists = cocktailCommentRepository.existsByCocktailIdAndUserId(cocktailId, user.getId()); + if (exists) { + throw new IllegalArgumentException("이미 댓글을 작성하셨습니다."); + } + CocktailComment cocktailComment = CocktailComment.builder() .cocktail(cocktail) .user(user)