Engineering Note

[JPA] 4장 엔티티 매핑 본문

Server/JPA ORM

[JPA] 4장 엔티티 매핑

Software Engineer Kim 2025. 6. 19. 10:19

본 포스트는 인프런 김영한님의 JPA강의와 자바 ORM 표준 JPA 프로그래밍 책을 참고하여 정리한 내용입니다.

JPA를 잘 사용하기 위해서는 영속성 컨텍스트같은 JPA 내부동작과 관련된 개념을 잘 알아야하고, 다른 한 가지는 설계 적인 관점, 정적인 영역인 엔티티 매핑을 잘 이해해야한다.

 

매핑은 크게 4가지가 있다.

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

- 기본 키 매핑: @Id

- 필드와 컬럼 매핑: @Column

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

 

여기서 연관관계 매핑이 제일 중요한데, RDB, 관계형 데이터베이스의 Entity, 테이블은 1:N, 1:1 등 관계를 맺고 있는데 이렇게 맺고 있는 관계를 객체간의 어떻게 표현할 지 JPA에서 어떻게 매핑할지가 연관관계 매핑내용이다. 
나머지 객체와 테이블은 객체와 테이블을 어떻게 매핑할 지에 대한 내용이고, 기본키는 기본키를 어떤 객체의 어떤 필드와 매핑할지, 그리고 필드와 컬럼을 어떻게 매핑할지에 대한 내용이다.


4.1 @Entity

- JPA를 사용해서 테이블과 매핑할 클래스에는 @Entity 어노테이션을 필수로 붙여야 하고, @Entity가 붙은 클래스는 JPA가 관리한다.

- name 속성이 있는데 JPA에서 사용할 엔티티 이름을 지정한다. 기본 값은 클래스 이름을 그대로 사용한다. 다른 패키지에 ㅣㅇ름이 같은 에티티 클래스가 있다면 이름을 지정해서 충돌하지 않도록 할 수 있다.

 

주의 사항

- 기본 생성자는 필수다.(파라미터가 없는 public 또는 protected 생성자) => 파라미터가 있는 생성자가 있다면 직접 기본생성자를 만들어주어야 한다. 아무 생성자도 없다면 Java가 기본으로 기본생성자를 만들어 준다.

- final 클래스, enum, interface, inner 클래스에는 사용할 수 없다.

- 저장할 필드에 final을 사용하면 안된다.

 

 

 

 

Comments