JPA Entity ID 생성방식

By | 2022년 6월 10일
Table of Contents

JPA Entity ID 생성방식

ID 생성방식은 크게 수동생성 방식과 자동생성 방식이 있습니다.

수동생성 방식

수동 생성방식은 애플리케이션에서 값을 생성하는 방식입니다.
uniq 함은 애플리케이션이 보장해야 합니다.

GeneratedValue 를 사용하면 오류가 발생합니다.

    @Id
    // @GeneratedValue(strategy = GenerationType.IDENTITY)
    @NotNull
    private Integer msgkey;

자동생성 방식

NotNull 을 사용하면 오류가 발생합니다.

IDENTITY

MySQL, PostgreSQL, SQL Server, DB2 에서 사용합니다.

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    // @NotNull
    private Integer msgkey;

SEQUENCE

Oracle, PostgreSQL, DB2, H2 DB 에서 사용합니다.

@Entity
@SequenceGenerator(
    name = "USER_SEQ_GENERATOR"
    , sequenceName = "USER_SEQ"
    , initialValue = 1
    , allocationSize = 1
)
public class User {
    @Id
    @GeneratedValue(
        strategy = GenerationType.SEQUENCE
        , generator = "USER_SEQ_GENERATOR"
    )
    private long id;
}

답글 남기기