Spring JPA에서 객체를 entity로 사용하기 위해 @Entity 어노테이션을 사용해야한다.
이처럼 JPA를 사용할 때 필요한 Annotation에 대해 몇 가지 알아보자.
아래의 Member Entity를 예시로 들어보자.
1) @Entity
: entity 어노테이션은 DB 테이블과 1:1로 매칭되는 객체로, entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미한다.
따라서 각 레코드를 구분하기 위한 유일한 키값을 가지는데, 이것이 테이블의 PK(Primary Key)와 같은 의미를 가지며, @Id 어노테이션으로 정의한다.
2) @GeneratedValue
: PK 자동 생성 전략을 설정하는 어노테이션으로, 4가지가 있다.
@GeneratedValue(strategy = {기본키값 생성전략})
- GenerationType.IDENTITY:
주로 MySQL과 같은 데이터베이스에서 사용되는 방법으로,
데이터베이스의 자동 증가 기능을 이용하여 주요 키 값을 생성한다. - GenerationType.AUTO:
JPA 구현체가 데이터베이스에 맞는 적절한 전략을 자동으로 선택하여 주요 키 값을 생성한다.
데이터베이스마다 다른 전략을 사용한다. - GenerationType.SEQUENCE:
일련번호(Sequence)를 사용하여 주요 키 값을 생성한다.
일부 데이터베이스는 시퀀스를 지원하며,
이를 활용하여 주요 키 값을 생성한다. - GenerationType.TABLE:
별도의 키 생성 테이블을 사용하여 주요 키 값을 생성한다.
일부 데이터베이스는 시퀀스를 지원하지 않을 수 있으므로,
이를 대체하는 방법으로 사용된다.
3) @Column
: column 어노테이션은 DB 테이블의 컬럼을 매핑할 때 사용한다.
해당 어노테이션은 생략이 가능하지만, 실제 DB 테이블의 컬럼명이 스네이크 케이스(언더바 형식)로 작성되어 있지 않다면 명시적으로 작성해줘야 매핑이 가능하다.
- @Column(name= ~): 해당 컬럼의 DB 컬럼명을 명시해준다.
- @Column(length= ~): 해당 컬럼 값의 length를 명시해준다. (String 타입에만 사용 가능하다.)
- @Column(nullable = false): nullable을 false로 해주면 filed가 notNull column으로 설정된다.
- @Column(unique = true): 해당 column을 unique로 설정해준다.
[reference]
https://www.icatpark.com/entry/JPA-%EA%B8%B0%EB%B3%B8-Annotation-%EC%A0%95%EB%A6%AC
https://velog.io/@seongwon97/Spring-Boot-Entity-Annotation
https://velog.io/@gillog/JPA-Column-Annotation
https://velog.io/@gillog/JPA-Column-Annotation
'Java > Spring Framework' 카테고리의 다른 글
[Spring/MyBatis] 페이징 처리, Pagination 구현하기 (0) | 2025.03.20 |
---|---|
[Spring Data JPA] JPQL 사용법 (1) | 2025.03.17 |
[Java/Spring] MyBatis typeAlias 사용법 (0) | 2025.03.14 |