엔티티 생성

클래스에 @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: 삭제만)