Spring

Spring ) Java Annotation GeneratedValue 에 대해서 알아보자

Albosa2lol 2023. 7. 4. 21:23

@GeneratedValue은 Java Spring 프레임워크에서 엔티티 클래스의 기본 키(primary key) 값을 자동으로 생성하기 위해 사용되는 애노테이션입니다. 주로 데이터베이스와 관련된 작업에서 사용되며, 기본 키 값을 자동으로 생성하고 할당하는 데에 유용합니다.

 

@GeneratedValue 애노테이션은 주로 JPA(Java Persistence API)와 함께 사용되며, JPA에서 엔티티 클래스의 기본 키 값을 자동으로 생성하는 방법을 제공합니다. JPA는 객체를 데이터베이스에 영속화(persistence)하는 데 사용되는 자바 ORM(Object-Relational Mapping) 기술입니다.

@GeneratedValue 애노테이션은 주로 기본 키 값의 생성 전략을 지정하기 위해 사용됩니다. @GeneratedValue 애노테이션은 다양한 전략(strategy)을 제공하며, 주로 사용되는 전략은 다음과 같습니다.

  1. GenerationType.IDENTITY: 데이터베이스의 자동 증가(Auto-increment) 기능을 사용하여 기본 키 값을 생성합니다. 주로 MySQL, PostgreSQL 등에서 사용됩니다.
  2. GenerationType.SEQUENCE: 데이터베이스 시퀀스(sequence)를 사용하여 기본 키 값을 생성합니다. 시퀀스는 데이터베이스에서 고유한 순차 번호를 생성하는 객체입니다. 주로 Oracle에서 사용됩니다.
  3. GenerationType.TABLE: 데이터베이스 테이블을 사용하여 기본 키 값을 생성합니다. 데이터베이스 테이블에 키 생성용 테이블을 생성하고, 테이블에서 값을 읽어와 기본 키로 사용합니다.
  4. GenerationType.AUTO: 데이터베이스 종류에 따라 자동으로 적합한 전략을 선택합니다. 대부분의 경우 GenerationType.IDENTITY나 GenerationType.SEQUENCE 중 하나를 사용합니다.

@GeneratedValue 애노테이션은 다음과 같이 엔티티 클래스의 기본 키 필드에 적용할 수 있습니다:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

위의 예제에서 @Id는 엔티티 클래스의 기본 키를 나타내는 필드를 표시하는 애노테이션입니다. @GeneratedValue는 기본 키 값을 자동으로 생성할 때 사용되며, GenerationType.IDENTITY를 통해 자동 증가(Auto-increment) 전략을 사용하도록 지정했습니다.

 

이와 같이 @GeneratedValue 애노테이션을 사용하여 엔티티 클래스의 기본 키 값을 자동으로 생성할 수 있습니다. 이를 통해 개발자는 기본 키 생성에 대한 복잡한 로직을 구현할 필요 없이 간편하게 기본 키 값을 관리할 수 있습니다.