Skip to content

Commit e3e975b

Browse files
committed
refect:엔티티 구조 변경
1 parent 83ffdca commit e3e975b

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package com.back.domain.study.plan.controller;
22

33
import com.back.domain.study.plan.service.StudyPlanService;
4+
import lombok.RequiredArgsConstructor;
45
import org.springframework.web.bind.annotation.RequestMapping;
56
import org.springframework.web.bind.annotation.RestController;
67

78
@RestController
9+
@RequiredArgsConstructor
810
@RequestMapping("/api/plans")
911
public class StudyPlanController {
1012
private final StudyPlanService studyPlanService;
13+
14+
1115
}

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,30 @@
22

33
import com.back.global.entity.BaseEntity;
44
import jakarta.persistence.*;
5+
import lombok.AllArgsConstructor;
56
import lombok.Getter;
67
import lombok.NoArgsConstructor;
8+
import lombok.Setter;
79

810
import java.time.LocalDateTime;
911

1012
@Entity
11-
@NoArgsConstructor
1213
@Getter
14+
@Setter
15+
@NoArgsConstructor
16+
@AllArgsConstructor
1317
public class RepeatRule extends BaseEntity {
1418
@OneToOne
15-
@JoinColumn(name = "study_plan_id")
19+
@JoinColumn(name = "study_plan_id", nullable = false)
1620
private StudyPlan studyPlan;
1721

1822
@Enumerated(EnumType.STRING)
1923
private Frequency frequency;
2024

25+
@Column(name = "interval_value", nullable = false)
2126
private int RepeatInterval;
2227

28+
//필요 시 요일 지정
2329
@Enumerated(EnumType.STRING)
2430
private DayOfWeek byDay;
2531

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

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,42 @@
77
import lombok.NoArgsConstructor;
88

99
import java.time.LocalDateTime;
10+
import java.util.ArrayList;
11+
import java.util.List;
1012

1113
@Entity
1214
@NoArgsConstructor
1315
@Getter
1416
public class StudyPlan extends BaseEntity {
1517
@ManyToOne(fetch = FetchType.LAZY)
16-
@JoinColumn(name = "user_id")
18+
@JoinColumn(name = "user_id", nullable = false)
1719
private User user;
1820

21+
@Column(nullable = false, length = 100)
1922
private String subject;
2023

2124
@Enumerated(EnumType.STRING)
2225
private StudyStatus status;
2326

24-
private LocalDateTime studyDate;
27+
@Column(name = "start_date", nullable = false)
28+
private LocalDateTime startDate;
2529

30+
@Column(name = "end_date", nullable = false)
2631
private LocalDateTime endDate;
2732

2833
@Enumerated(EnumType.STRING)
2934
private Color color;
3035

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

src/main/java/com/back/domain/study/plan/repository/StudyPlanRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import com.back.domain.study.plan.entity.StudyPlan;
44
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
56

7+
@Repository
68
public interface StudyPlanRepository extends JpaRepository<StudyPlan, Integer> {
79

810
}

0 commit comments

Comments
 (0)