DiaryEntity
package so.ego.re_darling.domains.diary;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import so.ego.re_darling.domains.user.domain.Couple;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
@Getter
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name = "diary")
@Entity
public class Diary {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private LocalDateTime date;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "couple_id")
private Couple couple;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "diary_id")
private List<DiaryComment> diaryCommentList = new ArrayList<>();
}
Diary 글 한개의 여러개의 Comment를 추가할 수 있다.
1. Diary를 조회할 때 comment List 도 같이 조회하고 싶다.
2. Comment를 따로 조회할 목적이 없다.
라고 생각해서 일대다 중 일인 Diary에 @OneToMany를 적용하려고 했다 . 하지만 흐름을 생각해보면
Diary 작성 -> Comment 작성 -> Diary update query 발생 이 된다.
객체와 테이블의 패러다임 차이때문이다.
그래서 다대일 단방향 관계로 매핑 후 필요할 때 양방향 매핑을 하도록 한다.
반응형
'Project > DARLING' 카테고리의 다른 글
7. CI/CD 계획 (0) | 2022.02.09 |
---|---|
6. 무엇이 문제일까 ... (0) | 2022.01.25 |
5. Spring REST Docs 사용 (0) | 2022.01.24 |
3. 연관관계 - ManyToOne (0) | 2022.01.23 |
2. Entity (0) | 2021.12.03 |