Skip to content

Commit 2ea149a

Browse files
authored
Merge pull request #149 from Money-Touch/chore/#148
[#148] ⚙️Chore: 소비 루틴 한 달 1회 등록 제한 재적용
2 parents 52d81fe + af97d83 commit 2ea149a

File tree

2 files changed

+16
-20
lines changed

2 files changed

+16
-20
lines changed

src/main/java/com/server/money_touch/domain/routine/entity/Routine.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
@NoArgsConstructor(access = AccessLevel.PROTECTED)
1212
@AllArgsConstructor
1313
@Entity
14-
//@Table(
15-
// uniqueConstraints = {
16-
// @UniqueConstraint(
17-
// name = "unique_user_budget_month",
18-
// columnNames = {"user_id", "budget_id", "created_month"}
19-
// )
20-
// }
21-
//)
14+
@Table(
15+
uniqueConstraints = {
16+
@UniqueConstraint(
17+
name = "unique_user_budget_month",
18+
columnNames = {"user_id", "budget_id", "created_month"}
19+
)
20+
}
21+
)
2222
public class Routine extends BaseEntity {
2323
@Column(length = 20, nullable = false)
2424
private String routineName;

src/main/java/com/server/money_touch/domain/routine/service/RoutineCommandServiceImpl.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,15 @@ public RoutineResponse.RoutineCreateResultDTO saveRoutineWithRoutineHashtags(
9292
}
9393

9494
// 7. 루틴 저장
95+
// - 동시에 같은 (user, budget, createdMonth) 조합이 저장되는 경쟁 상황 방지
96+
// - 유니크 제약 위반 발생 시 DataIntegrityViolationException을 잡아 예외 변환
9597
Routine routine = RoutineConverter.toRoutine(user, budget, request, createdMonth);
96-
routineRepository.save(routine);
97-
98-
// // 7. 루틴 저장
99-
// // - 동시에 같은 (user, budget, createdMonth) 조합이 저장되는 경쟁 상황 방지
100-
// // - 유니크 제약 위반 발생 시 DataIntegrityViolationException을 잡아 예외 변환
101-
// Routine routine = RoutineConverter.toRoutine(user, budget, request, createdMonth);
102-
// try {
103-
// routineRepository.save(routine);
104-
// } catch (DataIntegrityViolationException e) {
105-
// // 혹시 경쟁 상황으로 유니크 제약 위반 시
106-
// throw new ErrorHandler(ROUTINE_ALREADY_EXIST);
107-
// }
98+
try {
99+
routineRepository.save(routine);
100+
} catch (Exception e) {
101+
// 혹시 경쟁 상황으로 유니크 제약 위반 시
102+
throw new ErrorHandler(ROUTINE_ALREADY_EXIST);
103+
}
108104

109105
// 8. RoutineAmount 저장
110106
List<RoutineAmount> routineAmounts = request.getBudgetList().stream()

0 commit comments

Comments
 (0)