본문 바로가기
스프링

애노테이션 몇 개

by 리포터12 2022. 12. 16.
728x90

@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으로 저장되도록 선언한다.

728x90

'스프링' 카테고리의 다른 글

@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

댓글