@GeneratedValue
@GeneratedValue는 Java Persistence API (JPA)에서 엔티티 클래스의 주요 키(Primary Key) 값을 자동으로 생성하기 위해 사용되는 어노테이션입니다. JPA는 관계형 데이터베이스와 자바 객체를 매핑하는 ORM(Object-Relational Mapping) 기술을 제공하는데, 이때 엔티티 클래스의 주요 키 값을 생성하는 방법 중 하나로 @GeneratedValue를 사용할 수 있습니다.
@GeneratedValue (strategy type)
@GeneratedValue 어노테이션은 다음의 4가지 방식으로 자동 생성 전략을 설정할 수 있습니다.
GenerationType.IDENTITY:
주로 MySQL과 같은 데이터베이스에서 사용되는 방법으로, 데이터베이스의 자동 증가 기능을 이용하여 주요 키 값을 생성합니다.
GenerationType.AUTO:
JPA 구현체가 데이터베이스에 맞는 적절한 전략을 자동으로 선택하여 주요 키 값을 생성합니다. 데이터베이스마다 다른 전략을 사용합니다.
GenerationType.SEQUENCE:
일련번호(Sequence)를 사용하여 주요 키 값을 생성합니다. 일부 데이터베이스는 시퀀스를 지원하며, 이를 활용하여 주요 키 값을 생성합니다.
GenerationType.TABLE:
별도의 키 생성 테이블을 사용하여 주요 키 값을 생성합니다. 일부 데이터베이스는 시퀀스를 지원하지 않을 수 있으므로, 이를 대체하는 방법으로 사용됩니다.
@GeneratedValue 어노테이션은 주로 엔티티 클래스의 주요 키 필드 위에 선언됩니다.
아래는 @GeneratedValue 어노테이션을 사용한 간단한 예시입니다:
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 다른 필드와 메서드들...
}
@GeneratedValue 어노테이션은 JPA 표준에 따르는 ORM 프레임워크에서 사용될 수 있습니다. 다양한 JPA 구현체(Hibernate, EclipseLink 등)가 있으며, 데이터베이스마다 지원하는 기능과 전략들이 다를 수 있습니다. 따라서 사용 환경에 따라 적절한 전략을 선택하는 것이 중요합니다.
'Spring' 카테고리의 다른 글
AWS EC2 인스턴스에서 환경변수 설정하는 방법 (0) | 2023.05.13 |
---|---|
Ngrok - 특징 및 사용법 (로컬 서버를 공개 서버로) (0) | 2023.04.06 |
Apache Tomcat (톰캣) (0) | 2023.04.06 |
Spring _ JAR(Java Archive) , WAR(Web application Archive) (0) | 2023.04.06 |
Java Spring _ SSR(Server Side Rendering) ,CSR(Client Side Renderin (0) | 2023.03.23 |