> 데이터 베이스 > MySQL 튜토리얼 > `@Id` 및 `@GeneratedValue(strategy = GenerationType.IDENTITY)` 주석은 JPA에서 어떻게 작동합니까?

`@Id` 및 `@GeneratedValue(strategy = GenerationType.IDENTITY)` 주석은 JPA에서 어떻게 작동합니까?

Susan Sarandon
풀어 주다: 2025-01-05 17:27:44
원래의
255명이 탐색했습니다.

How Do `@Id` and `@GeneratedValue(strategy = GenerationType.IDENTITY)` Annotations Work in JPA?

@Id 및 @GeneratedValue(strategy = GenerationType.IDENTITY) 주석이 재생되는 역할은 무엇입니까?

프로그래밍의 주석은 동작을 구성하고 코드를 용이하게 하는 편리한 방법을 제공합니다. 가독성. JPA(Java Persistence API)의 컨텍스트에서 일반적으로 사용되는 두 가지 주석은 @Id 및 @GeneratedValue(strategy = GenerationType.IDENTITY)입니다. 그 의미를 자세히 살펴보겠습니다.

@Id 주석: 기본 키 식별자

@Id 주석은 필드를 엔터티의 기본 키로 표시합니다. 이는 지정된 필드가 엔터티의 각 인스턴스에 대한 고유 식별자를 보유하고 있음을 JPA 제공자에게 알립니다. 대부분의 시나리오에서 주석이 달린 필드에는 데이터베이스에 있는 해당 테이블의 기본 키가 포함됩니다.

@GeneratedValue(strategy = GenerationType.IDENTITY) 주석: 자동 증가 ID 생성

@GeneratedValue GenerationType.IDENTITY 전략과 결합된 주석은 기본 키 값을 할당하기 위해 데이터베이스의 자동 증가 메커니즘을 사용하도록 JPA 제공자에게 지시합니다. 이 전략을 사용하면 JPA 공급자는 엔터티 생성 시 주석이 달린 필드에 대해 고유한 순차적 값을 자동으로 생성합니다.

예를 들어, id라는 자동 증가 열이 있는 MySQL 테이블이 있는 경우 다음 코드는 Author 클래스의 인스턴스에 고유한 정수 ID를 자동으로 할당합니다.

@Entity
public class Author {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id") 
    private Integer id;
    
}
로그인 후 복사

Alternative GenerationType 전략

GenerationType.IDENTITY 외에도 GenerationType.AUTO, GenerationType.SEQUENCE 및 GenerationType.TABLE과 같은 다른 전략을 @GeneratedValue와 함께 사용할 수 있습니다. 전략 선택은 데이터베이스 및 구성 기본 설정에 따라 다릅니다.

  • GenerationType.AUTO: 구성된 데이터베이스에서 지원하는 전략이 기본값입니다.
  • GenerationType.SEQUENCE: 데이터베이스 시퀀스를 활용하여 다음을 수행합니다. 기본 키 값을 생성합니다.
  • GenerationType.TABLE: 기본 키를 관리하기 위해 별도의 테이블을 사용합니다. value.

도메인 클래스 확장: 목적 및 이점

추상 도메인 클래스를 확장하면 애플리케이션의 모든 도메인 엔터티에 대한 공통 기능과 동작을 상속할 수 있습니다. 이 접근 방식은 코드 재사용성, 일관성 및 정의된 아키텍처 준수를 촉진합니다. 이점은 다음과 같습니다.

  • 표준화된 데이터 검증 및 비즈니스 규칙 상속
  • 모든 도메인 엔터티에 대한 단일 지점 서비스 클래스 매핑
  • 향상된 코드 구성 및 유지 관리성.

이러한 주석과 추상화 기술을 활용하면 엔터티 지속성을 단순화할 수 있습니다. JPA 애플리케이션에서 일관된 데이터 처리를 유지하세요.

위 내용은 `@Id` 및 `@GeneratedValue(strategy = GenerationType.IDENTITY)` 주석은 JPA에서 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿