클래스에 @Entity 만 붙여주면 끝!
@Entity
@Table(name = "member") // 테이블명 변경 (선택사항)
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 나머지 필드 구성...
}
이제 이 클래스는 JPA 엔티티가 되어 테이블이 자동 생성됨
@ManyToOne (항상 먼저 연결)
@Entity
public class Comment {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "post_id")
private Post post;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User author;
// 나머지 필드 구성...
}
외래 키를 가진 쪽이 연관관계의 주인
@ManyToOne에서 fetchType 기본값은 EAGER: → LAZY 로 명시적 설정 권장
@JoinColumn : 해당 테이블에 생성할 외래키의 이름을 지정
@OneToMany (@ManyToOne 을 먼저 연결한 후 필요할 때만 연결)
@Entity
public class Post {
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Comment> comments = new ArrayList<>();
// 나머지 필드 구성...
}
mappedBy: 연관관계의 주인 쪽 엔티티에서 이 객체를 식별하는 데 사용해야 할 필드명
CascadeType : 영속성 전이 설정 (ALL: 모두, PERSIST: 저장만, REMOVE: 삭제만)