@Entity
@Entity는 해당 java class 를 JPA가 관리하는 Entity로 인식하게 하는 에노테이션이다.
Entity로 인식되면 JPA는 이 Class를 통해 생성된 객체를 Entity로 인식한다.
Entity로 생성된 객체는 반드시 다른 객체와 식별할 수 있어야 하는데,
이를 위해 사용되는 것이 바로 @Id 애노테이션이다.
@Id
DB에 저장되는 테이블에 저장되는 각 행들은 PK(Primary key) 칼럼(속성, 열)을 통해 유일한 데이터로 식별될 수 있다.
이런 테이블과 매핑되는 엔티티 역시 PK 칼럼과 매핑될 식별자를 가지고 있어야 한다. 이를 식별자 필드 라고 한다.
JPA는 @Id를 통해 식별자 필드를 매핑한다.
@Table
Entity 이름과 테이블 이름이 다른 경우 사용하여 매핑할 테이블 이름을 지정할 수 있다.
다양한 속성을 가지고 있으나 지금 당장은 'name' 속성만 알아도 될 듯 하다.
@Column
Entity의 변수와 테이블의 칼럼(속성, 열)을 매핑할 때 사용한다.
다양한 속성을 가지고 있으나, 칼럼 이름을 지정하는 name 과 NULL 데이터 입력을 방지하는 nullable 정도만 사용된다.
name 속성을 생략하면 변수명 그대로 칼럼명으로 매핑된다.
@Transient
Entity Class 변수들 가운데, 테이블에 넣지 않을 변수들(제외해야 하는 것들)을 매핑에서 제외한다.
@Enumerated(EnumType.String)
JPA로 DB로 저장할 때 Enum 값을 어떤 형태로 저장할지를 결정한다.
기본값은 Int 타입이다.
숫자로 저장하게 되면 DB로 확인할 때 그 값이 무슨 코드를 의미하는지 알 수 없다.
이럴 때 EnumType을 String으로 저장되도록 선언한다.
'스프링' 카테고리의 다른 글
@ResponseBody (0) | 2022.12.19 |
---|---|
[Spring] JPA Auditing (0) | 2022.12.18 |
[Spring] 인증과 인가 (0) | 2022.12.17 |
[Spring] @ResponseBody (0) | 2022.12.08 |
[Spring] Cause: error: invalid source release: 17 (0) | 2022.12.07 |
댓글