JPA를 사용하면 데이터베이스 테이블 간의 관계를 Java 객체에 쉽게 매핑할 수 있다.
@OneToMany
는 엔터티 간의 일대다 관계를 표현한다. 예를 들면, 하나의 Memo
엔터티는 여러 개의 Comment
엔터티와 관련될 수 있다.
@OneToMany(mappedBy = "memo", cascade = CascadeType.REMOVE)
private List<Comment> comments = new ArrayList<>();
Comment
의 memo
필드를 가리킨다. CascadeType.REMOVE
설정은 부모 엔터티(Memo
) 삭제 시 자식 엔터티(Comment
)도 함께 삭제되게 한다.@ManyToOne
는 엔터티 간의 다대일 관계를 표현한다. 즉, 여러 Comment
엔터티는 하나의 Memo
엔터티와 연관될 수 있다.
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "postId", referencedColumnName = "id", insertable = false, updatable = false)
private Memo memo;
FetchType.LAZY
는 memo
필드에 접근할 때만 실제로 Memo
엔터티를 로딩한다.외래 키와 관련된 설정을 할 때 사용되는 어노테이션이다.