Goal
- 객체와 테이블 매핑에 필요한 annotation과 속성에 대해 파악한다.
@Entity
- @Entity가 붙은 클래스는 JPA가 관리하는 엔티티, 데이터 집합체이다.
즉, 테이블과 매핑할 클래스는 @Entity가 필수이다.
- @Entity가 붙은 클래스는 기본 생성자가 필수이다.
- 이유는, JPA가 엔티티 객체를 생성할 때 reflection을 사용하는데, 이 때 기본 생성자를 호출해서 객체를 생성하기 때문이다.
- Primary Key를 필수로 가져야한다.
- @Entity는 public class만 가질 수 있다.
- 저장할 필드에 final을 사용하지 않는다.
@Entity 속성
- name : JPA에서 사용할 엔티티 이름을 지정한다.
- default는 클래스명이며, 웬만하면 default를 사용한다.
- ex)
![](https://velog.velcdn.com/images/engus525/post/dde826e6-e214-4967-9b0f-04460075cebb/image.png)
@Table
- @Table은 엔티티와 매핑할 테이블을 지정한다.
@Table 속성
- name : 매핑할 테이블 이름
- catalog
- schema
- uniqueConstraints : DDL 생성 시, 지정 컬럼이 유일한 값을 갖도록 한다.
- ex) name, city 필드가 유일한 값을 갖도록 한다.
![](https://velog.velcdn.com/images/engus525/post/345dc7f7-a19b-401f-a903-83f5ddc5f173/image.png)
참고 자료
https://www.inflearn.com/course/ORM-JPA-Basic
💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕