>데이터 베이스 >MySQL 튜토리얼 >@Id 및 @GeneratedValue 주석은 Java 지속성에서 기본 키 및 자동 증가를 어떻게 관리합니까?

@Id 및 @GeneratedValue 주석은 Java 지속성에서 기본 키 및 자동 증가를 어떻게 관리합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-06 03:48:41257검색

How do @Id and @GeneratedValue Annotations Manage Primary Keys and Auto-Increment in Java Persistence?

주석 @Id 및 @GeneratedValue: 이해 및 구성

소개

주석 재생 간결하고 강력한 구성 기능을 제공하는 Java Enterprise 애플리케이션에서 중요한 역할을 합니다. 지속성에 사용되는 두 가지 일반적인 주석은 @Id와 @GeneratedValue이며, 이는 기본 키와 해당 생성 전략을 정의하는 데 필수적입니다.

@Id: 기본 키 정의

javax.persistence.Id에서 상속된 @Id 주석은 엔터티의 기본 키 역할을 하는 멤버 필드를 나타냅니다. 이 주석은 테이블 내의 고유 행을 식별하는 데 사용됩니다.

@GeneratedValue: 자동 증가 구성

javax.persistence.GeneratedValue에서 상속된 @GeneratedValue 주석은 지정된 열의 생성 전략을 제어합니다. 기본 키 값을 자동으로 채우므로 명시적 할당이 필요하지 않습니다.

GenerationType.IDENTITY: 데이터베이스 서버를 사용한 자동 증가

GenerationType.IDENTITY는 전략입니다. 기본 키 값을 자동으로 생성하기 위해 데이터베이스 서버에 의존합니다. 이는 자동 증가 열을 지원하는 MySQL 및 PostgreSQL과 같은 데이터베이스에서 일반적으로 사용됩니다. 이 전략을 사용하면 데이터베이스 자체에서 기본 키 값이 생성되므로 편리하고 효율적입니다.

다른 세대 유형

GenerationType.IDENTITY 외에도 다른 세대 전략은 다음과 같습니다.

  • GenerationType.SEQUENCE: 데이터베이스를 사용하여 기본 키 값을 생성합니다. 시퀀스.
  • GenerationType.TABLE: 기본 키 값을 저장하기 위해 별도의 테이블을 생성합니다.
  • GenerationType.AUTO: 지속성 공급자가 가장 적절한 전략을 선택할 수 있습니다.

샘플 구현

다음 Java 클래스는 @Id 및 @GeneratedValue(strategy = GenerationType.IDENTITY):

@Entity
public class Author {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    // Other fields...
}

이 예에서 id 필드는 작성자 엔터티의 기본 키가 되며 데이터베이스에서 생성된 고유 값으로 자동으로 채워집니다. .

도메인 클래스 확장

제공되는 클래스에는 Author 클래스가 있습니다. 추상 도메인 클래스를 확장합니다. 이는 여러 엔터티 간의 공유 동작 및 데이터 유효성 검사 규칙에 대한 일반적인 추상화를 제공하는 일반적인 관행입니다.

결론

@Id 및 @GeneratedValue와 같은 주석은 필수 도구입니다. Java Enterprise 애플리케이션의 데이터 지속성을 관리하기 위한 것입니다. 이러한 주석의 작동 방식을 이해하면 기본 키를 효과적으로 정의하고 자동 증가 전략을 구성하여 데이터베이스 작업을 간소화할 수 있습니다.

위 내용은 @Id 및 @GeneratedValue 주석은 Java 지속성에서 기본 키 및 자동 증가를 어떻게 관리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.