Skip to content

Commit 308c763

Browse files
committed
fix: entity 변경 중 에러 발생 수정
1 parent bf16898 commit 308c763

File tree

5 files changed

+21
-27
lines changed

5 files changed

+21
-27
lines changed

src/main/java/com/back/domain/study/plan/dto/StudyPlanResponse.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.back.domain.study.plan.dto;
22

33
import com.back.domain.study.plan.entity.Color;
4+
import com.back.domain.study.plan.entity.DayOfWeek;
45
import com.back.domain.study.plan.entity.Frequency;
56
import com.back.domain.study.plan.entity.StudyPlan;
67
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -10,6 +11,7 @@
1011
import lombok.Setter;
1112

1213
import java.time.LocalDateTime;
14+
import java.util.Arrays;
1315
import java.util.List;
1416
import java.util.stream.Collectors;
1517

@@ -55,6 +57,17 @@ public RepeatRuleResponse(com.back.domain.study.plan.entity.RepeatRule repeatRul
5557
this.until = repeatRule.getUntilDate();
5658
}
5759
}
60+
61+
// 요일을 리스트로 접근 ("MON,TUE" -> [MON, TUE])
62+
public List<DayOfWeek> getByDaysList() {
63+
if (byDay == null || byDay.isEmpty()) {
64+
return List.of();
65+
}
66+
return Arrays.stream(byDay.split(","))
67+
.map(String::trim)
68+
.map(com.back.domain.study.plan.entity.DayOfWeek::valueOf)
69+
.collect(Collectors.toList());
70+
}
5871
}
5972
//엔티티를 DTO로 변환하는 생성자
6073
public StudyPlanResponse(StudyPlan studyPlan) {
@@ -65,17 +78,6 @@ public StudyPlanResponse(StudyPlan studyPlan) {
6578
this.endDate = studyPlan.getEndDate();
6679
this.color = studyPlan.getColor();
6780

68-
// 부모 계획 ID 설정
69-
if (studyPlan.getParentPlan() != null) {
70-
this.parentPlanId = studyPlan.getParentPlan().getId();
71-
}
72-
73-
// 자식 계획들 변환
74-
if (studyPlan.getChildPlans() != null && !studyPlan.getChildPlans().isEmpty()) {
75-
this.childPlans = studyPlan.getChildPlans().stream()
76-
.map(StudyPlanResponse::new)
77-
.collect(Collectors.toList());
78-
}
7981

8082
// RepeatRule 변환
8183
if (studyPlan.getRepeatRule() != null) {

src/main/java/com/back/domain/study/plan/entity/RepeatRule.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
@AllArgsConstructor
1717
public class RepeatRule extends BaseEntity {
1818
@OneToOne
19-
@JoinColumn(name = "study_plan_id", nullable = false)
19+
@JoinColumn(name = "plan_id", nullable = false)
2020
private StudyPlan studyPlan;
2121

2222
@Enumerated(EnumType.STRING)
@@ -25,8 +25,9 @@ public class RepeatRule extends BaseEntity {
2525
@Column(name = "interval_value", nullable = false)
2626
private int RepeatInterval;
2727

28-
//필요 시 요일 지정
29-
@Enumerated(EnumType.STRING)
28+
//필요 시 요일 지정. 여러 요일 지정 시 ,로 구분
29+
//현재는 요일 하나만 지정하는 형태로 구현
30+
@Column(name = "by_day")
3031
private String byDay;
3132

3233
private LocalDateTime untilDate;

src/main/java/com/back/domain/study/plan/entity/StudyPlan.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,14 @@ public class StudyPlan extends BaseEntity {
3434
@Enumerated(EnumType.STRING)
3535
private Color color;
3636

37-
// 부모 계획과의 연관관계
38-
@ManyToOne(fetch = FetchType.LAZY)
39-
@JoinColumn(name = "parent_plan_id",
40-
foreignKey = @ForeignKey(name = "fk_study_plan_parent"))
41-
private StudyPlan parentPlan;
42-
43-
// 자식 계획들과 연관관계
44-
@OneToMany(mappedBy = "parentPlan", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
45-
private List<StudyPlan> childPlans = new ArrayList<>();
4637

4738
@OneToOne(mappedBy = "studyPlan",cascade = CascadeType.ALL, fetch = FetchType.LAZY)
4839
private RepeatRule repeatRule;
4940

50-
@OneToMany(mappedBy = "todo", cascade = CascadeType.ALL, orphanRemoval = true)
41+
@OneToMany(mappedBy = "studyPlan", cascade = CascadeType.ALL, orphanRemoval = true)
5142
private List<StudyRecord> studyRecords;
5243

44+
//반복 주기 설정 시 예외 리스트
5345
@OneToMany(mappedBy = "studyPlan", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
5446
private List<StudyPlanException> exceptions = new ArrayList<>();
5547
}

src/main/java/com/back/domain/study/plan/service/StudyPlanService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public StudyPlanResponse createStudyPlan(Long userId, StudyPlanCreateRequest req
2626
studyPlan.setStartDate(request.getStartDate());
2727
studyPlan.setEndDate(request.getEndDate());
2828
studyPlan.setColor(request.getColor());
29-
studyPlan.setParentPlan(null);
3029

3130
// 반복 규칙 설정
3231
if (request.getRepeatRule() != null) {
@@ -54,6 +53,7 @@ public StudyPlanResponse createStudyPlan(Long userId, StudyPlanCreateRequest req
5453
studyPlan.setRepeatRule(repeatRule);
5554
}
5655

56+
//추후 변수명이나 리턴 형식은 수정 예정
5757
StudyPlanResponse rs =new StudyPlanResponse(studyPlanRepository.save(studyPlan));
5858
return rs;
5959
}

src/main/java/com/back/domain/study/record/entity/StudyRecord.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.back.domain.study.record.entity;
22

33
import com.back.domain.study.plan.entity.StudyPlan;
4-
import com.back.domain.study.todo.entity.Todo;
54
import com.back.domain.studyroom.entity.Room;
65
import com.back.global.entity.BaseEntity;
76
import jakarta.persistence.Entity;
@@ -19,7 +18,7 @@
1918
public class StudyRecord extends BaseEntity {
2019
@ManyToOne(fetch = FetchType.LAZY)
2120
@JoinColumn(name = "plan_id")
22-
private StudyPlan plan;
21+
private StudyPlan studyPlan;
2322

2423
@ManyToOne(fetch = FetchType.LAZY)
2524
@JoinColumn(name = "room_id")

0 commit comments

Comments
 (0)