- One to Many (1 : N)
하나의 데이터가 여러개의 데이터에 연결되야하는 경우
ex) 도서관 시스템 : 한 명의 유저(1)가 여러개의 책(N)을 빌리는 경우
N쪽에서 Foreign Key를 가짐(1의 Primary Key에 대응되는 Key)
@OneToMany(mappedBy = "author", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JsonBackReference
private List<Book> books;
One to Many 일때 : @JsonBackReference
- cascade: JPA에는 영속화란 개념이 있습니다. CascadeType.ALL이면 부모가 영속화가 되면 자식도 영속화가 됩니다. 정확한 표현은 아니지만 부모와 자식의 상태가 동시에 변하게 합니다.
- fetch: EAGER, LAZY로 나뉩니다.
- EAGER(즉시로딩): 연관관계가 설정된 모든 테이블에 대해서 조인이 이뤄집니다.
- LAZY(지연로딩): 기본적으로 연관관계 테이블을 조인하지 않고 조인이 필요한 경우에 Join을 합니다.
- Many to One(N : 1)
@ManyToOne
@JoinColumn(name ="author_id")
@JsonManagedReference
private Author author;
Many to One 일 때 : @JsonManagedReference
'Web' 카테고리의 다른 글
MySQL Intellij, DataGrip 연동방법 (0) | 2023.01.25 |
---|