From 74f8f812668e1f2c3215fbf32526bf1698880d15 Mon Sep 17 00:00:00 2001 From: LeeKW Date: Mon, 29 Sep 2025 11:29:08 +0900 Subject: [PATCH 1/3] fix : bugs of testCase, init data --- src/main/java/com/back/global/init/DevInitData.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/com/back/global/init/DevInitData.java b/src/main/java/com/back/global/init/DevInitData.java index 6101f7e7..e1ebdde3 100644 --- a/src/main/java/com/back/global/init/DevInitData.java +++ b/src/main/java/com/back/global/init/DevInitData.java @@ -55,6 +55,18 @@ ApplicationRunner devInitDataApplicationRunner() { }; } + @Transactional + public void cocktailInit() throws Exception { + // H2 DB에 이미 데이터가 들어가 있는지 확인 + if (cocktailRepository.count() > 0) { + System.out.println("Cocktail 데이터가 이미 존재합니다."); + return; + } + + // data-h2.sql에서 자동 삽입되므로 여기서는 추가하지 않음. + System.out.println("Cocktail 초기화: CSV에서 데이터를 이미 로드합니다."); + } + @Transactional public void userInit() { userRepository.findByNickname("사용자A").orElseGet(() -> From a2499199401f67a5c9636c8f2ea799c1c05fc25b Mon Sep 17 00:00:00 2001 From: LeeKW Date: Mon, 29 Sep 2025 11:47:34 +0900 Subject: [PATCH 2/3] fix : bug --- src/main/java/com/back/global/init/DevInitData.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/main/java/com/back/global/init/DevInitData.java b/src/main/java/com/back/global/init/DevInitData.java index e1ebdde3..6101f7e7 100644 --- a/src/main/java/com/back/global/init/DevInitData.java +++ b/src/main/java/com/back/global/init/DevInitData.java @@ -55,18 +55,6 @@ ApplicationRunner devInitDataApplicationRunner() { }; } - @Transactional - public void cocktailInit() throws Exception { - // H2 DB에 이미 데이터가 들어가 있는지 확인 - if (cocktailRepository.count() > 0) { - System.out.println("Cocktail 데이터가 이미 존재합니다."); - return; - } - - // data-h2.sql에서 자동 삽입되므로 여기서는 추가하지 않음. - System.out.println("Cocktail 초기화: CSV에서 데이터를 이미 로드합니다."); - } - @Transactional public void userInit() { userRepository.findByNickname("사용자A").orElseGet(() -> From 0545a9f9d69726589e6a4bfbdeeb362f387d3554 Mon Sep 17 00:00:00 2001 From: LeeKW Date: Tue, 30 Sep 2025 11:20:06 +0900 Subject: [PATCH 3/3] feat: limit the number of comments a user can create --- .../domain/cocktail/comment/entity/CocktailComment.java | 4 ++++ .../comment/repository/CocktailCommentRepository.java | 2 ++ .../cocktail/comment/service/CocktailCommentService.java | 6 ++++++ 3 files changed, 12 insertions(+) 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)