@GeneratedValue은 Java Spring 프레임워크에서 엔티티 클래스의 기본 키(primary key) 값을 자동으로 생성하기 위해 사용되는 애노테이션입니다. 주로 데이터베이스와 관련된 작업에서 사용되며, 기본 키 값을 자동으로 생성하고 할당하는 데에 유용합니다.
@GeneratedValue 애노테이션은 주로 JPA(Java Persistence API)와 함께 사용되며, JPA에서 엔티티 클래스의 기본 키 값을 자동으로 생성하는 방법을 제공합니다. JPA는 객체를 데이터베이스에 영속화(persistence)하는 데 사용되는 자바 ORM(Object-Relational Mapping) 기술입니다.
@GeneratedValue 애노테이션은 주로 기본 키 값의 생성 전략을 지정하기 위해 사용됩니다. @GeneratedValue 애노테이션은 다양한 전략(strategy)을 제공하며, 주로 사용되는 전략은 다음과 같습니다.
- GenerationType.IDENTITY: 데이터베이스의 자동 증가(Auto-increment) 기능을 사용하여 기본 키 값을 생성합니다. 주로 MySQL, PostgreSQL 등에서 사용됩니다.
- GenerationType.SEQUENCE: 데이터베이스 시퀀스(sequence)를 사용하여 기본 키 값을 생성합니다. 시퀀스는 데이터베이스에서 고유한 순차 번호를 생성하는 객체입니다. 주로 Oracle에서 사용됩니다.
- GenerationType.TABLE: 데이터베이스 테이블을 사용하여 기본 키 값을 생성합니다. 데이터베이스 테이블에 키 생성용 테이블을 생성하고, 테이블에서 값을 읽어와 기본 키로 사용합니다.
- GenerationType.AUTO: 데이터베이스 종류에 따라 자동으로 적합한 전략을 선택합니다. 대부분의 경우 GenerationType.IDENTITY나 GenerationType.SEQUENCE 중 하나를 사용합니다.
@GeneratedValue 애노테이션은 다음과 같이 엔티티 클래스의 기본 키 필드에 적용할 수 있습니다:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
위의 예제에서 @Id는 엔티티 클래스의 기본 키를 나타내는 필드를 표시하는 애노테이션입니다. @GeneratedValue는 기본 키 값을 자동으로 생성할 때 사용되며, GenerationType.IDENTITY를 통해 자동 증가(Auto-increment) 전략을 사용하도록 지정했습니다.
이와 같이 @GeneratedValue 애노테이션을 사용하여 엔티티 클래스의 기본 키 값을 자동으로 생성할 수 있습니다. 이를 통해 개발자는 기본 키 생성에 대한 복잡한 로직을 구현할 필요 없이 간편하게 기본 키 값을 관리할 수 있습니다.
'Spring' 카테고리의 다른 글
Spring ) Intro to the Jackson ObjectMapper / ObjectMapper 정리 (0) | 2023.07.12 |
---|---|
Spring ) @JsonInclude(JsonInclude.Include.NON_NULL) (0) | 2023.07.05 |
Java Spring ) application.properties 에서spring.jpa.hibernate.ddl-auto 설정 (0) | 2023.06.28 |
Spring Data JPA ) 매핑 테이블과 연관관계 매핑하기 (0) | 2023.06.22 |
Spring ) Annotation 에서 Contoller RestContoller 차이 (0) | 2023.06.14 |