일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이것이 자바다
- buffer
- 윤성우 열혈자료구조
- insertion sort
- s
- 이스케이프 문자
- 알기쉬운 알고리즘
- C 언어 코딩 도장
- list 컬렉션
- 윤성우의 열혈 자료구조
- Stack
- Graph
- Algorithm
- C programming
- JSON
- 혼자 공부하는 C언어
- datastructure
- Serialization
- Selection Sorting
- stream
- 메모리구조
- R
- coding test
- Today
- Total
Engineering Note
[JPA] 4장 엔티티 매핑 본문
본 포스트는 인프런 김영한님의 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을 사용하면 안된다.
'Server > JPA ORM' 카테고리의 다른 글
[JPA] 지연로딩(Lazy Loading)으로 인한 N+1 문제 (0) | 2025.08.22 |
---|---|
[JPA] 지연로딩 개념 (0) | 2025.08.22 |
[JPA] EntityManagerFactory, EntityManager (0) | 2025.07.10 |
[JPA] @Enumerated 어노테이션 (0) | 2025.06.21 |
[JPA] 데이터베이스 스키마 자동 생성 - 속성 (0) | 2025.06.21 |