JPA/JPA 기본

10. 객체와 테이블의 매핑

sdafdq 2023. 10. 21. 11:42

영속성 컨텍스트 개념과 더불어 중요함.

 

매핑 순서? 매핑할 때 해야 할 것들은

 

객체와 테이블 매핑 : @Entity, @Table

필드와 컬럼 매핑 : @Column

기본 키 매핑 : @Id

 

연관관계 매핑 : @ManyToOne, @JoinColumn

 

연관관계 매핑은 관계형DB에서의 1대다, 다대다 등의 관계를 JPA에서는 어떻게 매핑할 것인가. 하는 것.

 

 

 

@Entity

이게 붙은 클래스는 JPA가 관리하는 클래스이다.

JPA를 사용하여 테이블과 매핑할 클래스는 이것이 필수이다.

 

그리고, JPA가 다루는 클래스는

기본생성자(파라미터 없는 생성자를 public이나 protect로)가 꼭 있어야 하며,

 

final, enum, interface, inner 클래스를 사용하면 안된다.

 

저장하고 싶은 필드에 final 사용하면 안됨.

 

일단 실제 @Entity

@Entity
public class Member {
    @Id
    private Long id;
    private String name;
}

되게 간단한 버전이긴 함.

그리고 @Entity(name="Member") 해서 name을 붙여줄 수 있는데, 이거는 그냥 JPA 내부에서 구분하기 위한 이름.

클래스 이름이 default임.

 

@Table 애노테이션

이거는 테이블과 관련된 속성을 지정할 수 있는 애노테이션이다.

보통 JPA에서 클래스 이름과 같은 테이블 이름을 매핑하는데,

만약 클래스 이름과 테이블 이름이 다르다면,

@Entity
@Table(name="User")
public class Member {
    @Id
    private Long id;
    private String name;
}

이렇게 하면 된다.

 

몇가지 속성들이 있다.

'JPA > JPA 기본' 카테고리의 다른 글

12. 필드와 컬럼 매핑  (0) 2023.10.21
11. DB 스키마 자동 생성  (0) 2023.10.21
9. 준영속 상태  (0) 2023.10.20
8. 플러시  (0) 2023.10.20
7. 영속성 컨텍스트 2  (0) 2023.10.20